Ratkaistu: javascript gcd

JavaScript GCD-algoritmin suurin ongelma on, että sen laskeminen voi kestää kauan.

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

Tämä on rekursiivinen funktio, joka laskee kahden luvun suurimman yhteisen jakajan Euklidesin algoritmia käyttäen.

Jos b on yhtä suuri kuin 0, niin GCD on yhtä suuri kuin a. Muussa tapauksessa GCD on yhtä suuri kuin b:n GCD ja a:n loppuosa jaettuna b:llä.

Suurin yhteinen jakaja

Kahden kokonaisluvun suurin yhteinen jakaja (GCD) on suurin kokonaisluku, joka jakaa molemmat kokonaisluvut jättämättä jäännöstä. Esimerkiksi GCD 12 ja 24 on 6.

Matematiikan kirjastot

On olemassa muutamia kirjastoja, jotka voivat auttaa JavaScriptin matematiikassa. Yksi on Math.js, joka tarjoaa joukon matemaattisia perusfunktioita ja -objekteja. Toinen on numeral.js, joka tarjoaa kattavan joukon numeerisia toimintoja ja objekteja.

Rekursio JavaScriptissä

Rekursio on ohjelmointirakenne, joka sallii funktion kutsua itseään. Toisin sanoen se sallii funktion viitata itseensä omassa määritelmässään. Rekursiota voidaan käyttää ongelmien ratkaisemiseen tai tiettyjen tavoitteiden saavuttamiseen.

Yksi yleinen rekursion käyttötapa on algoritmeissa, jotka ratkaisevat ongelmia silmukoiden avulla. Esimerkiksi Fibonacci-sekvenssi voidaan ratkaista käyttämällä rekursiivista algoritmia. Algoritmi alkaa laskemalla ensimmäisen kerran Fibonacci-luvun ja laskemalla sitten toisen kerran Fibonacci-luvun ensimmäisen laskutoimituksen tuloksen perusteella. Tätä prosessia toistetaan, kunnes joko sekvenssi saavuttaa ennalta määrätyn rajan tai kunnes tapahtuu virhe.

Rekursiivisia funktioita voidaan käyttää myös luetteloiden ja taulukoiden ongelmien ratkaisemiseen. Oletetaan esimerkiksi, että haluat löytää kaikki parilliset luvut välillä 2 ja 100. Voit tehdä tämän silmukan avulla, mutta sen suorittaminen vie melko vähän aikaa. Sen sijaan voit käyttää rekursiota laskeaksesi kaikki parilliset luvut välillä 2–100 käyttämällä yhtä funktiokutsua.

Related viestiä:

1 ajatus aiheesta "Ratkaistu: javascript gcd"

Jätä kommentti