Riješeno: javascript gcd

Glavni problem s JavaScript GCD algoritmom je taj što može potrajati dugo za izračunavanje.

function gcd(a, b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

Ovo je rekurzivna funkcija za izračunavanje najvećeg zajedničkog djelitelja dvaju brojeva pomoću Euklidovog algoritma.

Ako je b jednako 0, tada je GCD jednak a. U suprotnom, GCD je jednak GCD od b i ostatka a podijeljenog sa b.

Najveći zajednički djelitelj

Najveći zajednički djelitelj (GCD) dva cijela broja je najveći cijeli broj koji dijeli oba cijela broja bez ostavljanja ostatka. Na primjer, GCD od 12 i 24 je 6.

Matematičke knjižnice

Postoji nekoliko biblioteka koje mogu pomoći s matematikom u JavaScriptu. Jedan je Math.js, koji pruža niz osnovnih matematičkih funkcija i objekata. Drugi je numeral.js, koji pruža opsežan skup numeričkih funkcija i objekata.

Rekurzija u JavaScriptu

Rekurzija je programska konstrukcija koja omogućuje funkciji da pozove samu sebe. Drugim riječima, dopušta funkciji da se odnosi na samu sebe u vlastitoj definiciji. Rekurzija se može koristiti za rješavanje problema ili postizanje određenih ciljeva.

Jedna uobičajena upotreba rekurzije je u algoritmima koji rješavaju probleme korištenjem petlji. Na primjer, Fibonaccijev niz može se riješiti pomoću rekurzivnog algoritma. Algoritam počinje izračunavanjem Fibonaccijevog broja po prvi put, a zatim izračunavanjem Fibonaccijevog broja po drugi put na temelju rezultata prvog izračuna. Ovaj se postupak ponavlja sve dok slijed ne dosegne unaprijed određeno ograničenje ili dok se ne pojavi pogreška.

Rekurzivne funkcije također se mogu koristiti za rješavanje problema koji uključuju popise i nizove. Na primjer, pretpostavimo da želite pronaći sve parne brojeve između 2 i 100. Za to biste mogli upotrijebiti petlju, ali za pokretanje bi trebalo dosta vremena. Umjesto toga, možete koristiti rekurziju za izračun svih parnih brojeva između 2 i 100 pomoću jednog poziva funkcije.

Povezani postovi:

1 misao o “Riješeno: javascript gcd”

Ostavite komentar