Gyakorlati alapok

...és ne vonakodjunk gyökét vonni!

 

A gyökvonás tulajdonképpen a hatványozás fordítottja (inverz művelete). Ekkor ismerjük a végeredményt, csak azt nem tudjuk, hogy melyik az a szám, amelyiket önmagával megszorozva a végeredményt adja. Fontos megjegyeznünk, hogy ilyen szám nem mindig létezik.

 

√4 = 2 (mert 2 * 2 = 4)

√9 = 3 (mert 3 * 3 = 9)

 

A Java-nyelvben a négyzetgyökvonásért a Math.sqrt(eredmeny) függvény felel (sqrt = square root):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.math.*;

public class Main {
    public static void main(String[] args) {
    double alap = 0;
    double eredmeny = 9;
    alap = Math.sqrt(eredmeny);
    System.out.println(alap);
    }
}

 

Végeredmény: 3.0

 

A helyes számításhoz mindkét változó értékét double típusúvá kellett alakítani.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Az is észrevehető, hogy szokatlan módon az eredményből indulok ki (9) és az alapba kerül a végeredmény. Ezt azért tettem így, hogy lássuk: a gyökvonás valóban a négyzetre emelés fordítottja (inverz művelete).

 

A gyökvonás természetesen nem állhat meg a négyzetgyökig, hiszen további mélységekbe is hatolhatunk az alapok keresése végett, ám ekkor már for ciklust kell bevetnünk. Például melyik szám 81 4. gyöke?

 

4√81 = ?

 

Így is kérdezhetnénk:

 

81 = n * n * n * n

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.math.*;

public class Main {
    public static void main(String[] args) {
    double alap = 0;
    double eredmeny = 81;
    double seged = eredmeny;
    for(int i = 0; i < 2; i++){
        alap = Math.sqrt(seged);
        seged = alap;
        }
    System.out.println(alap);
    }
}

 

Végeredmény: 3.0

 

A kódban észrevehető, hogy a for ciklus csak kétszer fut le, ennek matematikai oka van:

 

81 = 9

9 = 3

 

Ez 2 db négyzetgyökvonás. Ez a kód azért nem elegáns megoldás, mert nem tudunk vagy csak nagyon mesterkélten tudunk például köbgyököt vonni (általánosságban: a páratlan számú gyökkitevők nem működnek). Ebből következően a gyökvonást érdemes inkább máshogyan kiszámítanunk. Például melyik szám 3125 5. gyöke?

 

5√3125 = ?

 

Így is kérdezhetnénk:

 

3125 = n * n * n * n * n

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.math.*;

public class Main {
    public static void main(String[] args) {
    double gyokkitevo = 5;
    double szam = 3125;
    System.out.println(Math.pow(szam, 1/gyokkitevo));
    }
}

 

Végeredmény: 5.0

 

A kódban kis trükközés történik, mert valójában a hatványozó függvénnyel és a gyökkitevő reciprokával számolunk (Math.pow(szam, 1/gyokkitevo)).