Wat is het nut van 1e-12 bij competitief programmeren?


Beste antwoord

Drijvende-kommagetallen worden niet nauwkeurig in het computergeheugen opgeslagen. Dit komt doordat elk drijvende-kommagetal wordt benaderd tot de dichtstbijzijnde binaire weergave. Laten we daarom aannemen dat we hebben,

float a=0.87;

float b=0.87;

if(a==b){

printf("Equal \n");

} else {

printf("Not equal \n");

}

Kansen zijn, “Niet gelijk” wordt afgedrukt. Dus nu hebben we een vraag. Hoe controleren we de gelijkheid van 2 drijvende-kommagetallen?

Hier komt 1e-12 in beeld. Een verschil van minder dan 1e-12 tussen 2 drijvende-kommagetallen wordt als laag genoeg beschouwd om gelijk te zijn. Daarom controleert het in de 2e macro of de absolute waarde van a kleiner is dan 1e-12. Het programma zou er als volgt uit kunnen zien:

float a=0.87;

float b=0.87;

if(zero(a-b)){

printf("Equal \n");

} else {

printf("Not qqual \n");

}

Dit wordt gegarandeerd “gelijk” afgedrukt.

Ik hoop dat helpt.

Antwoord

Nou, als het hem helemaal niet kan schelen – zelfs genoeg om erover te praten – is jouw taak onmogelijk.

Als hij wel wil praten, maar niet wil kijken naar of leren over code, probeer dan dit spel met hem te spelen: je bent een robot zonder autonomie. Het is zijn taak om je van de bank te laten opstaan, naar de keuken te gaan en vier boterhammen met pindakaas en jam te maken. Hij zal dit moeten doen door u Engelse opdrachten te geven.

Je begrijpt acties als “lopen naar” en “mes uit la halen”, dus hij hoeft je niet te vertellen hoe je elke spier moet bewegen, en je begrijpt wat objecten zijn, dus hij hoeft het niet te vertellen moeten “mes” definiëren. Maar dat is de grens van uw begrip.

Zorg ervoor dat u zijn instructies letterlijk uitvoert en laat hem opnieuw beginnen, elke keer dat het resultaat geen vier PB & J-sandwiches zijn.

“Sta op en loop naar de keuken”

Je staat op en loopt naar de muur die de keuken en de woonkamer scheidt .

“Arg! Ik bedoel sta op en loop naar de ingang van de keuken.”

Dat doet u.

“Haal het brood uit de kast”

Je klauwt aan de kastdeur en kan er geen brood uit halen.

“Open de deur!”

Je opent de ovendeur.

“Ik bedoel, open de kastdeur!”

U doet dit.

“Haal het brood eruit.”

Je gooit het brood uit de kast en op de keukenvloer …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *