Nalutas: javascript gcd

Ang pangunahing problema sa JavaScript GCD algorithm ay maaaring tumagal ito ng mahabang panahon upang makalkula.

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

Ito ay isang recursive function upang kalkulahin ang pinakamalaking karaniwang divisor ng dalawang numero, gamit ang Euclid's algorithm.

Kung ang b ay katumbas ng 0, kung gayon ang GCD ay katumbas ng a. Kung hindi, ang GCD ay katumbas ng GCD ng b at ang natitira sa isang hinati ng b.

Pinakamahusay na Karaniwang Dividor

Ang Greatest Common Divisor (GCD) ng dalawang integer ay ang pinakamalaking integer na naghahati sa parehong integer nang hindi nag-iiwan ng natitira. Halimbawa, ang GCD ng 12 at 24 ay 6.

Mga aklatan sa matematika

Mayroong ilang mga aklatan na makakatulong sa matematika sa JavaScript. Ang isa ay ang Math.js, na nagbibigay ng ilang pangunahing function at object sa math. Ang isa pa ay ang numeral.js, na nagbibigay ng komprehensibong hanay ng mga numeric na function at bagay.

Recursion sa JavaScript

Ang recursion ay isang programming construct na nagbibigay-daan sa isang function na tawagan ang sarili nito. Sa madaling salita, pinapayagan nito ang isang function na sumangguni sa sarili nito sa sarili nitong kahulugan. Maaaring gamitin ang recursion upang malutas ang mga problema o makamit ang ilang mga layunin.

Ang isang karaniwang paggamit ng recursion ay sa mga algorithm na lumulutas ng mga problema gamit ang mga loop. Halimbawa, ang Fibonacci sequence ay maaaring malutas gamit ang isang recursive algorithm. Magsisimula ang algorithm sa pamamagitan ng pagkalkula ng numero ng Fibonacci sa unang pagkakataon, at pagkatapos ay pagkalkula ng numero ng Fibonacci sa pangalawang pagkakataon batay sa resulta ng unang pagkalkula. Ulitin ang prosesong ito hanggang sa maabot ng sequence ang isang paunang natukoy na limitasyon o hanggang sa magkaroon ng error.

Ang mga recursive function ay maaari ding gamitin upang malutas ang mga problemang kinasasangkutan ng mga listahan at array. Halimbawa, ipagpalagay na gusto mong hanapin ang lahat ng even na numero sa pagitan ng 2 at 100. Maaari kang gumamit ng loop upang gawin ito, ngunit kakailanganin ng kaunting oras upang tumakbo. Sa halip, maaari mong gamitin ang recursion upang kalkulahin ang lahat ng even na numero sa pagitan ng 2 at 100 gamit ang isang function na tawag.

Kaugnay na mga post:

1 naisip sa "Nalutas: javascript gcd"

Mag-iwan ng komento