Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok n. gyököt vonni...

Hogyan tudok n. gyököt vonni ANSI C-ben?

Figyelt kérdés

Lehet hogy hülye kérdésnek tűnik, de sajnos fogalmam sincs, hogyan csináljam. Mértani közepeket kellene számolnia a programnak.

Előre is köszi



2015. jan. 7. 11:28
 1/5 anonim ***** válasza:
100%

<math.h>-ból használd a pow(double alap, double kitevő) függvényt.


n. gyök:

gyok = pow(szam, 1.f/n);

2015. jan. 7. 12:16
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

Első válasza jó.


Annyit tennék hozzá, hogy:

1. Ha többször kell használnod érdemes előtte egyszer kiszámolni a hatvány inverzét.

2. Ha csak összehasonlításhoz kell az eredmény, használd az rsqrt (inverz gyökvonás), az pont egy osztással gyorsabb.

2015. jan. 7. 12:58
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Köszi szépen, közben rájöttem, csak én meg írtam egy "hatvany" függvényt, mert nem tudtam a pow létezéséről. Most már tudok :D
2015. jan. 7. 13:36
 4/5 anonim ***** válasza:
Miről ír a második válaszoló? Nincs rsqrt függvény, de ha lenne akkor sem lenne jó. A kérdezőnek 1/n-edik hatvány kell az rsqrt(reverse squareroot) -1/2-ediket ad vissza. Nyilván lehet gyorsabb, de egészen mást takar.
2015. jan. 7. 14:00
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Igazából, azért mert gyorsabb, csak azért hoztam fel.


Természetesen nem a hatvány lesz reciprok rsqrt()-nél, hanem az eredmény lesz az. Viszont összehasonlításhoz tökéletesen elég, és gyakorlatilag megspórolsz egy költséges osztás, a sqrt() Newton módszert használ, ahol először a reciprok gyököt közelítjük ki, aztán vesszük az eredmény reciprokát.


Ha csak két értéket hasonlítunk össze, vagy eleve osztani akarunk az eredménnyel, érdemes kihagyni (ha a fordító nem tenné meg) azt a plusz egy (költséges) műveletet.


Ref: [link]

2015. jan. 7. 21:03
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!