Riješeno: javascript gcd

Glavni problem sa 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 dva broja, koristeći Euklidov algoritam.

Ako je b jednako 0, tada je GCD jednak a. Inače, GCD je jednak GCD od b i ostatak a podijeljen 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 biblioteke

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

Rekurzija u JavaScript-u

Rekurzija je programska konstrukcija koja dozvoljava funkciji da pozove samu sebe. Drugim riječima, dozvoljava funkciji da se poziva na sebe u svojoj 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, Fibonačijev niz se može riješiti korištenjem rekurzivnog algoritma. Algoritam počinje tako što prvi put izračuna Fibonačijev broj, a zatim drugi put izračuna Fibonačijev broj na osnovu rezultata prvog izračuna. Ovaj proces se ponavlja sve dok sekvenca ne dostigne unaprijed određeno ograničenje ili dok se ne pojavi greška.

Rekurzivne funkcije se također mogu koristiti za rješavanje problema koji uključuju liste i nizove. Na primjer, pretpostavimo da želite pronaći sve parne brojeve između 2 i 100. Možete koristiti petlju da to učinite, ali bi trebalo dosta vremena da se pokrene. Umjesto toga, možete koristiti rekurziju da izračunate sve parne brojeve između 2 i 100 koristeći jedan poziv funkcije.

Slični postovi:

1 misao o “Rješeno: javascript gcd”

Ostavite komentar