La ĉefa problemo kun la JavaScript GCD-algoritmo estas ke ĝi povas preni longan tempon por kalkuli.
function gcd(a, b) { if (b == 0) { return a; } else { return gcd(b, a % b); } }
Ĉi tio estas rekursiva funkcio por kalkuli la plej grandan komunan dividon de du nombroj, uzante la algoritmon de Eŭklido.
Se b estas egala al 0, tiam la GCD estas egala al a. Alie, la GCD estas egala al la GCD de b kaj la resto de a dividita per b.
Plej Granda Komuna Divido
La Plej granda Ofta Divisoro (GCD) de du entjeroj estas la plej granda entjero kiu dividas ambaŭ entjerojn sen lasi reston. Ekzemple, la GCD de 12 kaj 24 estas 6.
Matematikaj bibliotekoj
Estas kelkaj bibliotekoj, kiuj povas helpi pri matematiko en JavaScript. Unu estas Math.js, kiu provizas kelkajn bazajn matematikajn funkciojn kaj objektojn. Alia estas numeral.js, kiu provizas ampleksan aron de nombraj funkcioj kaj objektoj.
Rikurso en JavaScript
Rikurso estas programa konstruo kiu permesas al funkcio nomi sin. Alivorte, ĝi permesas al funkcio rilati al si mem en sia propra difino. Rekurso povas esti uzata por solvi problemojn aŭ atingi certajn celojn.
Unu ofta uzo de rekursio estas en algoritmoj kiuj solvas problemojn uzantajn buklojn. Ekzemple, la sekvenco de Fibonacci povas esti solvita uzante rekursivan algoritmon. La algoritmo komenciĝas per kalkulo de la Fibonacci nombro por la unua fojo, kaj tiam kalkulado de la Fibonacci nombro por la dua fojo surbaze de la rezulto de la unua kalkulo. Tiu procezo estas ripetita ĝis aŭ la sekvenco atingas antaŭfiksitan limon aŭ ĝis eraro okazas.
Rekursivaj funkcioj ankaŭ povas esti uzitaj por solvi problemojn implikantajn listojn kaj tabelojn. Ekzemple, supozu, ke vi volas trovi ĉiujn parajn nombrojn inter 2 kaj 100. Vi povus uzi buklon por fari tion, sed necesus sufiĉe da tempo por funkcii. Anstataŭe, vi povus uzi rekurson por kalkuli ĉiujn parajn nombrojn inter 2 kaj 100 uzante ununuran funkciovokon.