Fibonacci-számok

logo

Növekményes (számláló) ciklus
Formázott eredménykiíratás

Egy ember vásárolt egy nyúlpárt tenyésztésre. Ez a nyúlpár egy hónap eltelte után egy nyúlpárt fialt, a második hónapban egy újabb nyúlpárt, majd megálltak a szaporodásban. Minden új pár hasonló módon pontosan két újabb nyúlpárt fialt. Hány új nyúlpárhoz jutott a tulajdonos egy-egy hónapban?

A kérdést megválaszolhatjuk, ha egy sorba leírjuk az egyes generációkhoz tartozó párok számát. Elsőként az 1-es számot írjuk le, mivel a tulajdonos egy nyúlpárral kezdte a tenyésztést. A következő lépésben újra 1-et írunk, mivel 1 nyúlpár született az első hónap után. A következő hónapban mindkét pár fialt. Így a következő szám 2. Eddig 3 számot írtunk a sorba: 1, 2, 3.

Mindegyik szám egy új generációt jelöl. Ezután az első pár szaporodása megállt. A második generáció (1 pár) 1, a harmadik generáció pedig (2 pár) 2 nyúlpárt fialt.

Így a sorban a következő szám 1+2, azaz 3 lesz. Ekkor a második generáció befejezi a szaporodást. A harmadik generáció (2 pár) 2, a negyedik generáció (3 pár) 3 nyúlpárt fialt. Így a következő szám 2+3, azaz 5 lesz a sorban.

Minden hónapban csak az utolsó két generáció fial, így a sorban a következő számot mindig az előző két szám összegeként állíthatjuk elő.

Az így keletkezett számokat Fibonacci-számoknak nevezzük. Ezeknek a számoknak érdekes tulajdonságaik vannak, gyakran felbukkannak a legkülönbözőbb területeken: virágszirmok száma, csigaház görbülete, napraforgóban a magok elrendeződése stb.

Fibonacci-számoknak tehát azokat a számokat nevezzük, amelyek mindegyike - az első kettő kivételével - egyenlő a sorban őt megelőző két szám összegével:

Fn = Fn-1 + Fn-2

A játék algoritmusának mondatszerű leírása:

Program fibonacci:

Ki: ”Fibonacci-számok” 

Be: N

f[1] = 1

f[2] = 1 

Ciklusváltozó = 3-tól N-ig

f[ciklusváltozó] = f[ciklusváltozó-1] + f[ciklusváltozó-2]

Ciklus vége

Ciklusváltozó = 1-tól N-ig

Ki: f[ciklusváltozó]

Ciklus vége

Program vége.