Tartalom
- Bevezetés a Fibonacci szekvenciába
- Ki volt Leonardo Fibonacci?
- Tehát mi is a Fibonacci-sorozat?
- A Fibonacci-szekvencia, ahogy az a számítástechnikára vonatkozik
- Rekurziós példa a Fibonacci szekvencia használatával.
- Következtetés:
- Kérjük, ide tegye meg észrevételeit.
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