Mi a baja ennek az algoritmusnak? (C-sharp)
A másodfokú egyenlet megoldóképlete akarna lenni leprogramozva. Lefut, látszólag rendesen, de az eredmény MINDIG ROSSZ.
> Math.Pow helyett még mindig gyorsabbnak tűnik a "b * b"
Így van, a Math.Pow képes a Pi az e-edikent is elvégezni, mert numerikus közelítést használ.
Ehhez képest a b * b egy egyszerű szorzás művelet. Fényévekkel gyorsabb.
Annyira, hogy még egész számú hatványoknál is előnyösebb szorzást használni:
A b^6 például így írható le:
b2 = b * b;
b4 = b2 * b2;
b7 = b4 * b2;
A másik szarvashiba, a kettő hatványaira használni a Math-Pow-ot. Ott ugyanis a shift operátor használata a célszerű.
2^a: ugyan az mint a 1 << a, vagy helytelenül a Math.Pow(2, a)
Ezek fontos dolgok, kukáztunk már ki gyakornokot mert nem volt képes leállni a pow használatával.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!