Fibonacci számok JavaScripttel

Fibonacci Szamok Javascripttel



„A JavaScript mostantól ECMAScript. A JavaScript fejlesztése ECMAScript néven folytatódik. A fenntartott „javascript” szót továbbra is használják, csak a visszamenőleges kompatibilitás miatt.

A Fibonacci-számok jelentése

A Fibonacci-számok pozitív egész számok meghatározott sorozata, amelyek 0-tól kezdődnek. Az egész számok pozitív egész számok. Tehát a Fibonacci-szám egész számok vagy természetes számok meghatározott sorozata, amely 0-tól kezdődik. Ebben a sorozatban az első két szám 0 és 1, ebben a sorrendben. A többi számot innen fejlesztjük az előző két szám összeadásával. Az első tizenkét Fibonacci-számot a következőképpen kapjuk:

0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89







Más szavakkal, az első tizenkét Fibonacci-szám:



0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89



Természetesen a tizenharmadik szám a következő lenne: 144 = 55 + 89. A Fibonacci-számok elképzelhetők egy tömbben, így:





0 1 1 két 3 5 8 13 huszonegy 3. 4 55 89

Egy tömbnek indexei vannak. A következő táblázatban a második sor a megfelelő nulla alapú indexeket mutatja a Fibonacci-számokhoz egy tömbben:

0 1 1 két 3 5 8 13 huszonegy 3. 4 55 89
0 1 két 3 4 5 6 7 8 9 10 tizenegy

Nulla alapú indexeknél, ha tizenkét elem van, akkor az utolsó index 11.



A Fibonacci-számok előállíthatók O(n) idővel vagy O(1) idővel. Ezekben az időbonyolultsági kifejezésekben n n fő műveletet, 1 pedig 1 fő műveletet jelent. O(n) esetén n Fibonacci-számot állítunk elő, 0-tól kezdve. O(1) esetén a megfelelő indexből egy Fibonacci-számot állítunk elő. Ezért az O(1) csak egy főműveletet vesz igénybe n főművelet helyett.

Ennek a cikknek az a célja, hogy elmagyarázza, hogyan lehet Fibonacci-számokat előállítani JavaScript használatával, amely ma tulajdonképpen ECMAScript.

Kódolási környezet

A node.js környezet nem lesz használva, ahogy azt az olvasó várta. Ehelyett a böngészőt használják a kód értelmezésére és az eredmények megjelenítésére. A szkriptet (kódot) egy szövegszerkesztő fájlba kell írni, amelyet „.html” kiterjesztéssel kell elmenteni. A szkriptnek minimum kóddal kell rendelkeznie:

DOCTYPE HTML >
< html >
< fej >
< cím > Fibonacci számok JavaScripttel cím >
fej >
< test >
< script típus = 'text/ecmascript' >

forgatókönyv >
test >
html >

Ez egy hozzávetőleges minimális kód, amelyre egy weboldalnak szüksége van. A cikkhez tartozó összes kódolás a címkék, a közé kerül.

A megírt (hozzáadott) kód futtatásához kattintson duplán a fájlnév ikonjára, és a számítógép böngészője megnyitja azt.

A Fibonacci-szám definíciója

A Fibonacci-számnak létezik matematikai definíciója. Ennek meghatározása a következő:

Ahol Fn egy nulla alapú indexnek megfelelő Fibonacci-szám, n.

Az első két szám: 0 és 1, előre deklarált, ebben a sorrendben. Ennek a függvénynek az utolsó sora megmutatja, hogy a többi szám hogyan származik az első két számból a sorrendben.

Ez a meghatározás a Fibonacci-szám egyik képlete is.

Fibonacci számok előállítása O(n) idő alatt

Ha n 1, akkor csak a 0 jelenik meg Fibonacci-számként. Ha n 2, akkor 0 és 1 Fibonacci-számként jelennek meg, ebben a sorrendben. Ha n 3, akkor a 0, 1 és 1 Fibonacci-számként jelennek meg ebben a sorrendben. Ha n 4, akkor a 0, 1, 1 és 2 Fibonacci-számokként jelennek meg, ebben a sorrendben. Ha n 5, akkor a 0, 1, 1, 2 és 3 Fibonacci-számokként jelennek meg, ebben a sorrendben. Ha n 6, akkor a 0, 1, 1, 2, 3 és 5 Fibonacci-számokként jelennek meg, ebben a sorrendben – és így tovább.

Az ECMAscript függvény az első n Fibonacci egész szám (szám) generálására a következő:

< script típus = 'text/ecmascript' >
funkció fibonacci ( A ) {
n = A. hossz ;
ha ( n > 0 )
A [ 0 ] = 0 ;
ha ( n > 1 )
A [ 1 ] = 1 ;
számára ( én = két ; én < n ; én ++ ) { //n=0 és n=2 vették figyelembe
currNo = A [ én - 1 ] + A [ én - két ] ;
A [ én ] = currNo ;
}
}

A záró szkriptcímke nem jelent meg. A függvény egy tömböt kap. Az első két Fibonacci-szám a helyükön van hozzárendelve. A for-ciklus a nulla alapú indextől iterál, 2-től valamivel n alatti értékig. A for-ciklus legfontosabb állítása:

currNo = A[i – 1] + A[i – 2];

Ez hozzáadja a tömb közvetlen előző két számát, hogy az aktuális szám legyen. Mire a fibonacci() függvény végrehajtása befejeződik, a tömb összes eleme az első n Fibonacci-szám. A megfelelő kód a fibonacci() függvény meghívására és a Fibonacci-számok megjelenítésére:

N = 12 ;
arr = új Sor ( N ) ;
fibonacci ( arr ) ;
számára ( én = 0 ; én < N ; én ++ )
dokumentum. ír ( arr [ én ] + '' ) ;
dokumentum. ír ( '
'
) ;
forgatókönyv >

Ez a kód a záró szkriptcímkét mutatja. A kód a fenti kód alá van beírva. A weboldalon megjelenő kimenet a következő:

0 1 1 2 3 5 8 13 21 34 55 89

ahogy az várható volt.

Egy Fibonacci szám előállítása O(1) idő alatt

O(1) állandó idő. Egy fő műveletre utal. Egy másik matematikai képlet a Fibonacci-szám előállításához:

Figyeljük meg, hogy az egyenlet jobb oldalán nem az 5 négyzetgyökét emeljük n hatványra; a zárójelben lévő kifejezés az n hatványra emelkedik. Két ilyen kifejezés létezik.

Ha n 0, Fibn 0. Ha n 1, Fibn 1. Ha n 2, Fibn 1. Ha n 3, Fibn 2. Ha n 4, Fibn 3 lenne. stb. Az olvasó ezt a képletet matematikailag ellenőrizheti, ha n-t különböző értékekkel helyettesít, és kiértékeli. n egy nulla alapú index ebben a képletben. Az eredmény a megfelelő Fibonacci-szám.

A képlet ECMAScript (JavaScript) kódja a következő:

< script típus = 'text/ecmascript' >
funkció fibNo ( n ) {
FibN = ( Math . hadifogoly ( ( 1 + Math . sqrt ( 5 ) ) / két , n ) - Math . hadifogoly ( ( 1 - Math . sqrt ( 5 ) ) / két , n ) ) / Math . sqrt ( 5 ) ;
Visszatérés FibN ;
}

A záró szkriptcímke nem jelent meg. Figyelje meg, hogyan használták a hatvány (pow) és négyzetgyök (sqrt) előre meghatározott függvényeket. Az ECMAScriptben (JavaScript) a matematikai modult nem kell importálni. A fibNo() függvény közvetlenül valósítja meg a képletet. A fibNo() függvény megfelelő hívása és megjelenítése a weboldalon:

N = tizenegy ;
jobb = fibNo ( N ) ;
dokumentum. ír ( jobb ) ;
forgatókönyv >

A kód a záró szkriptcímkét mutatja. A kimenet a következő:

89.00000000000003

Lehetőség van a felesleges decimális számjegyek eltávolítására a válaszból. Ez azonban máskor vita tárgya.

Ha egynél több Fibonacci-számra van szükség, akkor a kódnak egyszer meg kell hívnia a képletet minden nulla alapú megfelelő n indexhez.

Következtetés

A Fibonacci-számok pozitív egész számok meghatározott sorozata, amelyek 0-tól kezdődnek. Az egész számok pozitív egész számok. Tehát a Fibonacci-szám egész számok vagy természetes számok meghatározott sorozata, amely 0-tól kezdődik. Ebben a sorozatban az első két szám 0 és 1, ebben a sorrendben. Ez az első két szám csak így van meghatározva. A többi számot innen fejlesztjük a közvetlen előző két szám összeadásával.

Az első két Fibonacci-szám előállítása után a többi Fibonacci-szám előállításához, hogy összesen n számot kapjunk, for-hurkot kell használni a következő utasítással:

currNo = A[i – 1] + A[i – 2];

Ez összeadja az utolsó két Fibonacci-számot, hogy az aktuális Fibonacci-szám legyen.

Ha nulla alapú indexet kap, akkor a megfelelő Fibonacci-számhoz használja a következő képletet: