Vyriešené: javascript gcd

Hlavným problémom algoritmu JavaScript GCD je, že jeho výpočet môže trvať dlho.

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

Toto je rekurzívna funkcia na výpočet najväčšieho spoločného deliteľa dvoch čísel pomocou Euklidovho algoritmu.

Ak sa b rovná 0, potom sa GCD rovná a. V opačnom prípade sa GCD rovná GCD b a zvyšok a delený b.

Najväčší spoločný deliteľ

Najväčší spoločný deliteľ (GCD) dvoch celých čísel je najväčšie celé číslo, ktoré delí obe celé čísla bez zanechania zvyšku. Napríklad GCD 12 a 24 je 6.

Matematické knižnice

Existuje niekoľko knižníc, ktoré môžu pomôcť s matematikou v JavaScripte. Jedným je Math.js, ktorý poskytuje množstvo základných matematických funkcií a objektov. Ďalším je numeral.js, ktorý poskytuje komplexnú sadu numerických funkcií a objektov.

Rekurzia v JavaScripte

Rekurzia je programovacia konštrukcia, ktorá umožňuje funkcii volať samu seba. Inými slovami, umožňuje funkcii odkazovať sa na seba vo svojej vlastnej definícii. Rekurzia môže byť použitá na riešenie problémov alebo dosiahnutie určitých cieľov.

Jedno bežné použitie rekurzie je v algoritmoch, ktoré riešia problémy pomocou slučiek. Napríklad Fibonacciho sekvenciu možno vyriešiť pomocou rekurzívneho algoritmu. Algoritmus začína prvým výpočtom Fibonacciho čísla a potom druhým výpočtom Fibonacciho čísla na základe výsledku prvého výpočtu. Tento proces sa opakuje, kým buď sekvencia nedosiahne vopred určený limit, alebo kým sa nevyskytne chyba.

Rekurzívne funkcie možno použiť aj na riešenie problémov týkajúcich sa zoznamov a polí. Predpokladajme napríklad, že chcete nájsť všetky párne čísla medzi 2 a 100. Môžete na to použiť cyklus, ale jeho spustenie by zabralo dosť času. Namiesto toho môžete použiť rekurziu na výpočet všetkých párnych čísel medzi 2 a 100 pomocou jediného volania funkcie.

Súvisiace príspevky:

1 myšlienka na tému „Vyriešené: javascript gcd“

Pridať komentár