If you're seeing this message, it means we're having trouble loading external resources on our website.

Ha webszűrőt használsz, győződj meg róla, hogy a *.kastatic.org és a *.kasandbox.org nincsenek blokkolva.

Fő tartalom

Számoljuk ki egy szám hatványát!

Bár a JavaScriptben létezik a pow beépített függvény számok hatványának kiszámítására, azért te is megírhatod a saját rekurzív függvényedet, ami nagyon hatékony lehet. Az egyetlen kikötés az, hogy a kitevőnek egész számnak kell lennie.
Tegyük fel, hogy ki szeretnéd számítani xn értékét, ahol x egy tetszőleges valós szám, n pedig egy tetszőleges egész. Egyszerű a dolgunk, ha n 0, mivel x0=1 függetlenül x értékétől. Ez egy jó alapeset lesz.
Most vizsgáljuk meg, mi van abban az esetben, ha n pozitív. Kezdjük azzal, hogy felidézzük: akkor, amikor x hatványait összeszorozzuk, akkor a kitevőket összeadjuk: xaxb=xa+b tetszőleges x és bármilyen a és b kitevők esetén. Ezért, ha n pozitív és páros, akkor xn=xn/2xn/2. Ha y=xn/2 értékét rekurzívan szeretnéd kiszámítani, akkor xn-t kiszámíthatod yy alakban. Mi van akkor, ha n pozitív és páratlan? Akkor xn=xn1x, és n1 vagy 0, vagy pozitív és páros. Az előbb viszont láttuk, hogyan kell kiszámítani x hatványát abban az esetben, ha a hatvány 0, vagy pozitív és páros. Ezért ki tudod számítani xn1 értékét rekurzívan, majd az eredményt felhasználva kiszámítod xn=xn1x értékét.
Mi van akkor, ha n negatív? Akkor xn=1/xn, ahol a n kitevő pozitív, hiszen az egy negatív szám ellentéte. Ezután rekurzívan kiszámítod xn értékét, és veszed a reciprokát.
A fenti megállapításokat összegezve, az alábbi rekurzív algoritmust fogalmazhatjuk meg xn kiszámításához:
  • Az alapeset az, amikor n=0, és x0=1.
  • Ha n pozitív és páros, akkor rekurzívan számod ki y=xn/2-t, aminek az alapján xn=yy. Figyeld meg, hogy ebben az esetben elég egy rekurzív hívás, amiben egyszer kiszámolod xn/2 értékét, majd az eredményt megszorzod önmagával.
  • Ha n pozitív és páratlan, akkor rekurzívan számod ki y=xn1-t, ahol a kitevő vagy 0, vagy pozitív és páros. Ezután xn=xn1x.
  • Ha n negatív, rekurzívan számold ki xn-t, miáltal a kitevő pozitívvá változik. Ezután xn=1/xn.

Ez a fejezet a Dartmouth Computer Science két professzora, Thomas Cormen és Devin Balkcom, valamint a Khan Academy informatika tanmenetfejlesztő csapatának együttműködésében készült. A tartalom a CC-BY-NC-SA licenc alatt engedélyezett.

Szeretnél részt venni a beszélgetésben?

Még nincs hozzászólás.
Tudsz angolul? Kattints ide, ha meg szeretnéd nézni, milyen beszélgetések folynak a Khan Academy angol nyelvű oldalán.