Jaki jest pożytek z 1e-12 w programowaniu konkurencyjnym?


Najlepsza odpowiedź

Liczby zmiennoprzecinkowe nie są dokładnie przechowywane w pamięci komputera. Dzieje się tak, ponieważ każda liczba zmiennoprzecinkowa jest przybliżana do najbliższej reprezentacji binarnej. Dlatego załóżmy, że mamy,

float a=0.87;

float b=0.87;

if(a==b){

printf("Equal \n");

} else {

printf("Not equal \n");

}

Szanse są wypisane „Nie równe”. Teraz mamy pytanie. Jak sprawdzić równość 2 liczb zmiennoprzecinkowych?

Tutaj pojawia się 1e-12. Różnica mniej niż 1e-12 między 2 liczbami zmiennoprzecinkowymi jest uważane za wystarczająco niskie, aby były równe. Dlatego w drugim makrze sprawdza, czy wartość bezwzględna a jest mniejsza niż 1e-12. Program może wyglądać następująco:

float a=0.87;

float b=0.87;

if(zero(a-b)){

printf("Equal \n");

} else {

printf("Not qqual \n");

}

Gwarantuje to wydrukowanie „Równe”.

Mam taką nadzieję pomaga.

Odpowiedź

Cóż, jeśli w ogóle go to nie obchodzi – nawet na tyle, żeby o tym porozmawiać – twoje zadanie jest niemożliwe.

Jeśli chce rozmawiać, ale nie chce patrzeć na kod lub uczyć się go, spróbuj z nim zagrać w tę grę: jesteś robotem bez autonomii. Jego zadaniem jest zmusić cię do wstania z kanapy, pójścia do kuchni i zrobienia czterech kanapek z masłem orzechowym i galaretką. Będzie musiał to zrobić, wydając ci angielskie polecenia.

Rozumiesz czynności takie jak „podejdź do” i „wyjmij nóż z szuflady”, więc nie musi ci mówić, jak poruszać każdym mięśniem, a ty rozumiesz, czym są przedmioty, więc nie trzeba zdefiniować „nóż”. Ale to jest granica twojego zrozumienia.

Upewnij się, że wykonujesz jego instrukcje dosłownie i każ mu zaczynać od nowa, za każdym razem, gdy rezultatem nie są cztery kanapki z PB&J.

„Wstań i idź do kuchni”

Wstajesz i podchodzisz do ściany oddzielającej kuchnię od salonu .

„Arg! Mam na myśli wstań i podejdź do wejścia do kuchni”.

Robisz to.

„Wyjmij chleb z szafki”

Szarpiesz za drzwi szafy, nie mogąc wyciągnąć z niej chleba.

„Otwórz drzwi!”

Otwierasz drzwiczki piekarnika.

„Mam na myśli otwórz drzwi szafki!”

Zrób to.

„Wyjmij chleb”.

Wyrzucasz chleb z szafki na podłogę w kuchni …

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *