Atrisināts: javascript gcd

Galvenā JavaScript GCD algoritma problēma ir tā, ka tā aprēķināšana var aizņemt ilgu laiku.

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

Šī ir rekursīva funkcija, lai aprēķinātu divu skaitļu lielāko kopīgo dalītāju, izmantojot Eiklida algoritmu.

Ja b ir vienāds ar 0, tad GCD ir vienāds ar a. Pretējā gadījumā GCD ir vienāds ar b GCD un a atlikumu dalīts ar b.

Lielākais kopīgais dalītājs

Divu veselu skaitļu lielākais kopējais dalītājs (GCD) ir lielākais veselais skaitlis, kas dala abus veselus skaitļus, neatstājot atlikumu. Piemēram, 12 un 24 GCD ir 6.

Matemātikas bibliotēkas

Ir dažas bibliotēkas, kas var palīdzēt ar JavaScript matemātiku. Viens no tiem ir Math.js, kas nodrošina vairākas matemātikas pamatfunkcijas un objektus. Vēl viens ir numeral.js, kas nodrošina visaptverošu skaitlisko funkciju un objektu kopu.

Rekursija JavaScript

Rekursija ir programmēšanas konstrukcija, kas ļauj funkcijai izsaukt sevi. Citiem vārdiem sakot, tas ļauj funkcijai atsaukties uz sevi savā definīcijā. Rekursiju var izmantot problēmu risināšanai vai noteiktu mērķu sasniegšanai.

Viens izplatīts rekursijas lietojums ir algoritmi, kas risina problēmas, izmantojot cilpas. Piemēram, Fibonači secību var atrisināt, izmantojot rekursīvo algoritmu. Algoritms sākas, pirmo reizi aprēķinot Fibonači skaitli un pēc tam otro reizi aprēķinot Fibonači skaitli, pamatojoties uz pirmā aprēķina rezultātu. Šo procesu atkārto, līdz secība sasniedz iepriekš noteiktu robežu vai līdz rodas kļūda.

Rekursīvās funkcijas var izmantot arī, lai atrisinātu problēmas, kas saistītas ar sarakstiem un masīviem. Piemēram, pieņemsim, ka vēlaties atrast visus pāra skaitļus no 2 līdz 100. Lai to izdarītu, varat izmantot cilpu, taču tas prasīs diezgan daudz laika. Tā vietā varat izmantot rekursiju, lai aprēķinātu visus pāra skaitļus no 2 līdz 100, izmantojot vienu funkcijas izsaukumu.

Related posts:

1 doma par tēmu “Atrisināts: javascript gcd”

Leave a Comment