Mi az 1e-12 használata a versenyképes programozásban?


Legjobb válasz

A lebegőpontos számok nincsenek pontosan tárolva a számítógép memóriájában. Ennek oka, hogy bármely lebegőpontos szám hozzávetőleges a legközelebbi bináris ábrázoláshoz. Tegyük fel tehát, hogy vannak,

float a=0.87;

float b=0.87;

if(a==b){

printf("Equal \n");

} else {

printf("Not equal \n");

}

Esélyek “Nem egyenlő” lesz kinyomtatva. Tehát, most van egy kérdésünk. Hogyan ellenőrizhetjük 2 lebegőpontos szám egyenlőségét?

Itt az 1e-12 kép jelenik meg. 2 lebegőpontos szám közötti kevesebb, mint 1e-12, elég alacsonynak tekinthető, hogy egyenlőek legyenek. Ezért a 2. makróban azt ellenőrzi, hogy az a abszolút értéke kisebb-e mint 1e-12. A program így nézhet ki:

float a=0.87;

float b=0.87;

if(zero(a-b)){

printf("Equal \n");

} else {

printf("Not qqual \n");

}

Ez garantáltan kinyomtatja az “Equal” szót.

Remélem segít.

Válasz

Nos, ha egyáltalán nem törődik vele – még ahhoz sem, hogy megbeszélje -, akkor lehetetlen a feladata.

Ha hajlandó beszélni, de nem hajlandó megnézni vagy megismerni a kódot, próbáld meg vele játszani ezt a játékot: robot vagy, autonómia nélkül. Az ő feladata, hogy felkeljen a kanapéról, menjen a konyhába, és készítsen négy mogyoróvajat és zselés szendvicset. Ezt úgy kell megtennie, hogy angol parancsokat ad neked.

Érted az olyan műveleteket, mint a „séta oda” és a „kés előhúzása a fiókból”, ezért neki nem kell megmondania, hogyan kell mozgatni az egyes izmokat, és te is megérted, hogy mi a tárgy, tehát nem „t” meg kell határoznia a “kést”. De ez a megértésed határa.

Győződjön meg róla, hogy az utasításait szó szerint hajtja végre, és kezdje elölről, valahányszor az eredmény nem négy PB & J szendvics.

“Állj fel és sétálj a konyhába”

Felállsz és a konyhát és a nappalt elválasztó falhoz sétálsz .

“Arg! Úgy értem, hogy állj fel és sétálj a konyha bejáratáig.”

Teszed.

“Vegye ki a kenyeret a szekrényből”

Karmol a szekrény ajtaján, és nem tud kibontani belőle kenyeret.

“Nyisd ki az ajtót!”

Kinyitod a sütő ajtaját.

“Úgy értem, hogy nyisd ki a szekrény ajtaját!”

Megteszed.

“Vedd elő a kenyeret.”

Kinyomja a kenyeret a szekrényből és a konyha padlójára …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük