Fibonacci-számsorozat és aranymetszés

A természetben (napraforgó-mag, fenyőtoboz) is megjelenő aranymetszést két nézetben mutatja be: a napraforgó-mintázat a magok pozícióját az aranyszöggel forgatva helyezi el, az aranyspirál pedig Fibonacci-oldalhosszú négyzetekbe írt negyedköríves ívekből épül fel - a böngészőben élőben kinő a vásznon, a nagy felbontású változatot pedig a szerver rajzolja PHP GD-vel, és le is töltheted.

Nézd, ahogy kinő

A napraforgó magról magra nő a vásznon: minden új mag az előzőhöz képest pontosan az aranyszöggel (≈137,508°) elforgatva kerül a helyére, a középponttól a √n-nel arányos távolságra. A kirajzolás ugyanazt a képletet és színátmenetet használja, mint a szerver, csak itt a böngésző rajzol, élőben.

Mód
Magszám
Színátmenet
MAGOK: 539 / 600
SZÖG: 137,508°
Aranyszög: nincs hézag
NapraforgóVogel-képlet · r = c·√n
A magok nőnek...
Szög két mag között: 137,508°
Húzd el a csúszkát: már tized fok eltérés is küllőket és hézagokat hoz létre, csak az aranyszög tölti ki egyenletesen a tányért. (csak a böngészőben számolva, a szerver mindig az aranyszöget használja)
Letöltött kép mérete
Szerver-render letöltése
A letölthető PNG a szerveren készül, PHP GD-vel, nagy felbontásban. A fenti mód, magszám és színátmenet számít, a méretet itt választhatod.

Mi az a Fibonacci-számsorozat?

A Fibonacci-számsorozat minden tagja az előző kettő összege: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55... A sorozatot a 13. századi olasz matematikus, Leonardo Fibonacci tette ismertté Európában, bár indiai matematikusok (Pingala, Virahanka) már évszázadokkal korábban leírták.

Ahogy a sorozatban egyre messzebb haladunk, két egymást követő tag hányadosa egyre közelebb kerül az aranymetszéshez (φ ≈ 1,618). Az ókor óta esztétikusnak tartják, de hogy híres épületek és műalkotások tudatosan erre épülnének, az többnyire utólagos belemagyarázás (ld. a lenti Tévhit-kártyát).

A fenti aranyspirál-nézet pontosan ezt az arányt rajzolja ki: minden újabb négyzet oldala az előző két négyzet oldalának összege, a beírt negyedkörívek pedig folytonos spirált adnak ki.

A napraforgó-nézet egy valódi botanikai jelenséget, a phyllotaxist szemlélteti: a napraforgó magjai (és sok más növény levelei, pikkelyei) egymáshoz képest az aranyszöggel (≈137,5°) elforgatva nőnek - ez a szög adja a legszorosabb, legkevesebb hézagot hagyó elrendezést, ahogy a fenti mintázat is mutatja.

Az aranymetszés és a Fibonacci-számok tényleg megjelennek a természetben és a matematikában, de nem mindenhol, ahol a népszerű cikkek állítják. A kártyák ábrái mind a böngészőben készülnek, nincs bennük fotó. A "Tévhit" jelvényű kártya megmutatja, mit nem igazolnak a mérések.

Napraforgó-tányér

A magok két, egymással szembe forduló spirálcsaládot alkotnak, és a spirálok száma két szomszédos Fibonacci-szám. Válaszd ki, melyik családot színezzük.

jellemzően 34 és 55 spirál

Fenyőtoboz és ananász

A toboz pikkelyei jellemzően 8 és 13 spirálba rendeződnek. Az ananász hatszögletű mezőin három irányban is látszik spirál: 8, 13 és 21. Erős tendencia, de nem kivétel nélküli törvény.

toboz 8 és 13, ananász 8, 13, 21

Szirmok száma

Sok virág szirmainak száma Fibonacci-szám: liliom 3, boglárka 5, szarkaláb 8, aggófű 13, őszirózsa 21. Ez erős tendencia, nem törvény: fajtánként és példányonként is eltérhet.

3, 5, 8, 13, 21 szirom

Levélállás a száron

5/13 fordulat = 138,5°

Két egymást követő levél a szár körül a kör törtrészével fordul el: 1/2, 1/3, 2/5, 3/8, 5/13 ... Ezek Fibonacci-számok hányadosai, és a körfordulat 1/φ² ≈ 0,382 részéhez, azaz az aranyszöghöz (137,5°) tartanak.

határérték: 0,382 fordulat = 137,5°

Romanesco karfiol

A fej csúcsos tornyai spirálisan sorakoznak, és minden torony maga is ugyanilyen, kisebb tornyokból áll: ez az önhasonlóság. A spirálok száma itt is jellemzően Fibonacci-szám. Az ábra egyszerűsített, számított modell.

aranyszögű elrendezés, 2 szint

A here családfája

● here● nőstény

A herék megtermékenyítetlen petéből fejlődnek, ezért egy szülőjük van (az anya), a nőstényeknek két szülőjük. Visszafelé haladva az ősök száma generációnként Fibonacci-szám. (Az ábra a rokonházasságot figyelmen kívül hagyja.)

1, 1, 2, 3, 5, 8 ős

Fibonacci nyulai

● kifejlett pár● újszülött pár
7. hónap: 13 pár

Liber Abaci (1202): egy újszülött nyúlpár egy hónap alatt kifejlődik, majd minden hónapban egy új párt hoz világra, és egyik sem pusztul el. A párok száma havonta: 1, 1, 2, 3, 5, 8 ... Idealizált feladat, nem valódi állattenyésztés.

Pascal-háromszög

11112113311464115101051161520156117213535217118285670562881
1 + 5 + 6 + 1 = 13 = F(7)

A háromszög "sekély" átlóin (ahol a sor- és oszlopszám összege állandó) lévő számok összege a Fibonacci-számokat adja. Válaszd ki az átlót.

Ötszög és pentagram

oldal 1átló 1.618

A szabályos ötszög átlójának és oldalának aránya pontosan φ = (1 + √5) / 2. A pentagram éleit a metszéspontok is aranymetszés szerint osztják.

átló : oldal = φ ≈ 1,618

A hányadosok konvergálnak

φ = 1,6180F(15)/F(14) = 1,618037

Két szomszédos Fibonacci-szám hányadosa váltakozva alulról és felülről közelíti az aranymetszést: φ = 1,6180339887... Az értékek pontosak, egész számokból számolva.

F(n+1) / F(n) → φ

Nautilus: nem aranyspirál

Tévhit
● aranyspirál● nautilus

A nautilus-héj logaritmikus spirál, de nem az aranyspirál: fordulatonként kb. háromszorosára tágul, az aranyspirál viszont fordulatonként φ⁴ ≈ 6,85-szörösére. Az aranymetszés a Parthenon, a Mona Lisa vagy az "ideális arc" arányaiban sem bizonyított: a mérések szelektíven illeszthetők.

nautilus ≈ 3x, aranyspirál ≈ 6,85x fordulatonként

"Valódi PHP fut": 4 módszer, valódi mért idő

Mind a 4 alábbi PHP-függvény TÉNYLEGESEN lefut a szerveren, minden gombnyomásra újra - az idő nem szimulált, hanem a PHP saját, nanoszekundum-pontos órájával (hrtime) mérve.

n = 20
Naiv rekurzió
Dinamikus programozás
Binet zárt képlete
Gyors mátrix-hatványozás
N: -
FutamLog skála · valódi szerver-mérés
A sáv hossza logaritmikus: minden osztásvonal 10x idő. Lineáris skálán a gyors módszerek sávja láthatatlan volna.
A 4 módszer kódja

A tankönyvi megoldás: fib(n) = fib(n-1) + fib(n-2), semmilyen gyorsítás nélkül. Ugyanazt a részeredményt sokszor, feleslegesen újraszámolja, ezért exponenciálisan lassul n növelésével.

function naiveRecursive(int $n): int
{
    if ($n < 2) {
        return $n;
    }
    return naiveRecursive($n - 1) + naiveRecursive($n - 2);
}

Miért exponenciális a naiv rekurzió?

Minden hívás két újabbat indít, és ugyanazokat a részeredményeket újra és újra kiszámolja. A színek a k értékét jelölik: a sok egyforma színű csúcs a felesleges, ismételt munka.

HÍVÁSOK: 21 891
képletből: 2·F(n+1) - 1
F(2) 4181x újraszámolva
fib(20) hívásfájaA mély részfák háromszögbe húzva