Számítógépek

A Fibonacci szekvencia programozása: Számítástechnika alapjai

Szerző: Peter Berry
A Teremtés Dátuma: 15 Július 2021
Frissítés Dátuma: 11 Lehet 2024
Anonim
A Fibonacci szekvencia programozása: Számítástechnika alapjai - Számítógépek
A Fibonacci szekvencia programozása: Számítástechnika alapjai - Számítógépek

Tartalom

Szeretek másokat megtanítani a számítástechnika alapfogalmaira.

Bevezetés a Fibonacci szekvenciába

Ebben a cikkben a rekurzív algoritmusok sorozatának második módszerét fogom megvitatni. A tényadókhoz hasonlóan a Fibonacci-szekvencia is egy másik algoritmus, amely exponenciális növekedést mutat az idõ során. A rekurzió vizsgálatában alkalmazott négy módszer egyike is. Tehát ezzel elmondva először áttekintést szeretnék adni arról, hogy mi a Fibonacci-szekvencia.

Ki volt Leonardo Fibonacci?

Leonardo Pisano Boglio (más néven Leonardo Fibonacci) olasz matematikus volt a középkorban (kb. 1170 - 1250). Korának egyik legjobb matematikusának tartják, és a könyv megalkotásában neki köszönhető Liber Abaci, amely matematikai számításokon alapuló könyv. Természetesen a könyv leghíresebb algoritmusa a Fibonacci-szekvencia, amely a nyulak populációjának növekedésével kapcsolatos probléma megoldására épül. A tényleges sorrend azonban nem az övé volt. Az algoritmus valójában azokon a tudáson alapszik, amelyeket hindu matematikusoktól szerzett, akik a 6. század körül fedezték fel. Ez az első alkalom, hogy az algoritmust bevezették Nyugatra, és Fibonaccinak modern hírnevét adta, mivel egyike azoknak, akik segítettek bevezetni a hindu / arab számrendszert Európában.


Tehát mi is a Fibonacci-sorozat?

A szekvencia válasz volt a populáció exponenciális növekedésével foglalkozó problémára. Fibonacci könyve esetében a nyulak populációjának növekedésével foglalkozott. Az algoritmus figyelembe veszi az iterációk számát vagy a függvény meghívásának idejét, és összeadja az iteráció mínusz egy és az előző szám mínusz kettő összegét. 0 vagy 1 vagy iterációszám esetén azonban az összeg mindig 0 és 1 lesz. Mégis, ha az iterációs szám egynél nagyobb lesz, akkor az előállított összeg exponenciális növekedést fog látni. A következő módon írják fel a képletet, hogy jobb képet kapjanak a történésekről:

Fib (n) ahol n = 0, az összeg mindig 0 [alapeset]

Fib (n) ahol n = 1, az összeg mindig 1 [alapeset]

Azonban Fib (n), ahol az összes n> 1, majd Fib (n) egész szám (Fib (n-1) + Fib (n-2)).

Tehát, ha az iteráció 0 vagy 1, akkor a szám 0 vagy 1 lesz. Mivel azonban az iterációk meghaladják az 1-et, exponenciális növekedést kezd látni a kimenetben.


A Fibonacci-szekvencia, ahogy az a számítástechnikára vonatkozik

Az egyetemeken a számítástechnika programozói tanfolyamok szívesen használják ezt az algoritmust a rekurzív módszerek tanulmányozása során. C.S.-ben a rekurzív módszer olyan módszer, amelyet a saját definícióján belül definiálnak. Alapvetően ahelyett, hogy a módszert más módszerrel hívnák meg, valójában önmagát hívja. Ami a maga módján teszi egy hurok programozásának másik módjává?

A tanulmány indoklása az, hogy a hallgatók megértsék, hogyan lehet megoldani bizonyos problémákat, amelyek megoldást igényelnek egy alapesettől. Ezért a Fibonacci szekvencia annyira népszerű, mert megadja az alapesetet, majd lehetővé teszi a program számára, hogy ismételten felhívjon egy módszert a probléma megoldására. Ezzel az alábbiakban egy Java példát mutatunk be a Fibonacci-képletet alkalmazó rekurziókra.

Rekurziós példa a Fibonacci szekvencia használatával.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Példa rekurzióra a Java Fibonacci szekvenciájával. Szerző: Bink // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * csomag fibonaccirecursion; import java.math.BigInteger; // Matematikai függvényhez a FibonacciRecursion nyilvános osztály {// A BigInterger kezdeti értékének beállítása: return number private static BigInteger TWO = BigInteger.valueOf (2); // Végezzük el a rekurzív számításokat public static BigInteger fibonacciCalculations (BigInteger number) number.equals (BigInteger.ONE)) return number; másként adja vissza a fibonacciCalculations-ot (szám.vonás (BigInteger.ONE)). add (fibonacciCalculations (szám.vonás (TWO)); // end függvény public static void main (String [] args) {// végigfut a szekvencián, amíg a számláló == 30 for (int számláló = 0; számláló = 30; számláló ++) {System.out.printf ("% Fibonacci d értéke:% d n ", számláló, fibonacciCalculations (BigInteger.valueOf (számláló))); } // vége} // vége fő} // osztály vége

Következtetés:

Tehát ez összefoglalja, mi is a rekurzió, és mennyire fontos Fibonacci képlete a rekurzió tanulmányozásában. Ha átmásolja a fenti kódot, látni fogja, hogy minden iteráció után a számok exponenciálisan emelkednek, amíg el nem éri a beállított iterációt. A fenti program esetében az iterációs határt 30-ra állítottuk.


Ismét, amint azt korábban elmondtuk, a Fibonacci-szekvencia jó módszer a rekurzív módszer programozásának elsajátítására. A főiskolai egyetemeken széles körben használják a számítástechnikától a matematikai fokozatokig, és egy programozónak újabb eszközt ad arzenáljában a problémák megoldására.

Ez a cikk pontos és a szerző legjobb tudása szerint hű. A tartalom csak tájékoztató vagy szórakoztató célokat szolgál, és nem helyettesíti a személyes vagy üzleti tanácsokat üzleti, pénzügyi, jogi vagy technikai kérdésekben.

Kérjük, ide tegye meg észrevételeit.

Binkster (szerző) 2012. január 7-én:

Köszönöm ib,

Új vagyok a játékban, ezért köszönöm a tanácsot. Elkezdem csinálni.

Bink

ib radmesterek Dél-Kaliforniából 2012. január 7-én:

Bink

Szép központ, és érdekes háttér.

Ha ezt a programot csinálnám, akkor az a stílusom, hogy a számítások áttekintését a megjegyzés rovatba tegyem.

De ez az én személyes stílusom.

Köszönöm

Új Kiadványok

Javaslatunk

Hogyan hozhatja ki a legtöbbet a Mac Értesítési Központból
Számítógépek

Hogyan hozhatja ki a legtöbbet a Mac Értesítési Központból

zeretem az Apple ké zülékeket, é zíve en adok tippeket azok ha ználatához é karbantartá ához.Való zínűleg az érte íté i k...
Az MV transzformátoros védelem alapjai relék segítségével
Ipari

Az MV transzformátoros védelem alapjai relék segítségével

A zerző gyakorló villamo mérnök, é zakmai karrierje orán több védelmi-koordináció projektet hajtott végre.A tran zformátorok az áramelo zt&#...