Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Rekurzió
2009. február 17.
Rekurzió
Valami meghatározásféle
Szabály, amivel egy dolgot hasonló, egyszer¶bbek segítségéveladunk meg.
Akkor igazán érdekes, ha a szabályt sokszor kell alkalmazni.
Akkor igazán jó, ha a szabály egyszer¶.
A tudomány és a m¶vészetek területén lépten-nyomontalálkozhatunk vele
Bámulatosan hatékony konstrukciós és kognitív eszköz.
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n
1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Mi a sorozat képzési szabálya?
2, 4, 6, 8, 10, . . .
fn+1 = fn + 2, vagy fn = 2 · n1, 3, 9, 27, 81, 243, . . .
fn+1 = 3 · fn, vagy fn = 3n−1
7, 22, 11, 34, 17, 52, 26, 13, 40, . . .
fn+1 = 3 · fn + 1, ha fn páratlan, és fn+1 = fn/2, ha fn páros(Collatz, Kakutani, Hasse, Ulam kérdése)
1903, 1905, 1907, 1909, 1910, 1911, 1912, 1913, 1926, . . .
a Ferencváros bajnoki évei nincs rekurzió
Rekurzió
Alapvet® példa: Fibonacci-számok
Leonardo di Pisa (Fibonacci), 1202
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610...
F0 = 0, F1 = 1
Fi+2 = Fi+1 + Fi , i ≥ 0,
Fn =φn − (1− φ)n√
5,
Fn+1
Fn→ φ, n→∞.
Rekurzió
Fibonacci a természetben
Egy el®fordulás a sok közül...
Rekurzió
Friss könyv hasonló sorozatokról
Rekurzió
Aranymetszés
Az aranymetszés
a + b
a=
a
b= φ.
φ =1 +
√5
2≈ 1.6180339887498948482...
Rekurzió
Az aranytéglalap és egy aranyspirál
A legszebb téglalap. Sok m¶alkotásban megtalálható...
Rekurzió
Rekurzív hívás a programozásban: összefésüléses rendezés
function merge_sort(m)
var list left, right, result
if length(m)≤ 1return m
var middle = length(m)/2for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = merge_sort(left)
right = merge_sort(right)
result = merge(left, right)
return result
Rekurzió
Színe és visszája
A rekurziót tartalmazó kód világos, elegáns, érthet®, áttekinthet®,de...sajnos nem hatékony, lassú, nehézkes
Rekurzió
Összefésüléses rendezés II.
Rekurzió
Fraktálok: rekurzió és önhasonlóság
John Milton
Kezdetben, ahogyan az Ég és a Földa Káoszból kin®tt.
A von Koch-hópehely:
Rekurzió
Természetes nyelv és rekurzió
A macska, amit a kutya, ami megveszett, amikor a róka, aminekfoltos a bundája, megharapta, megmart, elszaladt.
Rekurzió
Egy rekurzív vers
Havasi Attila: Rekurzív ördögportré
Feje helyett segge van.Segge helyett orra van.Orra helyett farka van.Farka helyett ördög van.
Rekurzió
Egy rekurzív meghatározás
rekurzió
Ha még mindig nem érted, lásd: rekurzió
Rekurzió
Ugyanaz, látványosabban
Rekurzió
Kép a képben
A királyi kakaó:
Rekurzió
Önhivatkozás: Russell és Escher
Russell borbélya épp azokat borotválja, akik nem magukborotválkoznak...
Rekurzió
Donalbain kezdi az egész rémséget elölr®l...
Rekurzió
Pattkörök a számítástudományban
Egy sorosítási hálózat
Konkrétabban...
Rekurzió
Hasonló körök a m¶vészetben: Escher és Pavi¢
Rajzoló kezek
Milorad Pavi¢ Kazár szótárának két h®se, Samuel Koen és AvramBrankovi¢, akik egymást álmodják.
Nem minden kör vitiosus.Rekurzió
Lázár Ervin: Berzsián és Dideki
- Képzeljétek - folytatta Violin -, elvittem ehhez a kontár Srófhoz acsimpolyámat, mert a cé hang egy kicsit rekedtes volt benne,mondom, javítsa meg. Megyek érte másnap, hát nem átalakítottaheged¶vé a gyönyör¶ szép csimpolyámat! Itt állok most egy szálcsimpolya nélkül. De ez még hagyján, mert másnap meg aheged¶met vittem el neki, mivel az utóbbi id®ben egy picikétbeleszorultak a hangok. Mit gondoltok, mit csinált? Csimpolyát aszépséges heged¶mb®l! Most aztán se csimpolyám, se heged¶m.- Nono - mondta Zsebenci Klopédia.
Rekurzió
- Mit nono? - háborgott Violin, a fülrepeszt® zenész. - Itt állok azúj kantátám bemutatója el®tt és igenis, se csimpolyám, se heged¶m!- No de hát az a csimpolya hol van, amit a heged¶db®l csinált?- Otthon - mondta Violin.- Akkor csimpolyád van. Igaz?- Tényleg - ámuldozott Violin, de el is komorodott mindjárt. - Nade a heged¶! Mire megyek heged¶ nélkül?- Azt mondod, hogy a csimpolyádból heged¶t csinált. Hol az aheged¶?- Otthon - mondta Violin.- Hát akkor - mondta Klopédia - van heged¶d is meg csimpolyád is!
Rekurzió
Találatok rangsorolása a webkeresésben
Alapötlet: Lapok közötti kapcsolatok (hiperlinkek)mögötti emberi értékítéletek alkalmazása.
Google: PageRank [Brin, Page 98] véletlen szörföz®bolyongásának stacionárius eloszlása.Egy oldal jó min®ség¶, ha sok jó min®ség¶ mutat rá.
Teoma: HITS [Kleinberg 98] meghatározó- és gy¶jt®oldalak.Meghatározó tartalomra sok jó min®ség¶ gy¶jt®oldal mutat.Jó gy¶jt®oldal sok meghatározó tartalomra mutat.
Rekurzió
Hipertext-Indukált TémaSz¶rés (HITS)
Meghatározó tartalomra sok jó min®ség¶ gy¶jt®oldal mutat:
mh (k + 1) = gy (k)A
Jó gy¶jt®oldal sok meghatározó tartalomra mutat:
gy (k + 1) = mh (k + 1)AT
mh (k + 1) = mh (1)(ATA)k
gy (k + 1) = gy (1)(AAT )k .
Rekurzió
Nem biztos, hogy rekurzió, de...
Escher: Menny és Pokol
Rekurzió
Escher hiperbolikus halai
Rekurzió
Rekurzió réges-régen
Egy eldöntend® számítási feladat rekurzív, ha megválaszolhatóprogrammal.
A legtöbb feladat nem ilyen: több feladat, mint program.
Hírhedett példa: Adott egy program és egy bemenete. Eldöntend®,hogy a program megáll-e ezzel a bemenettel.
DE: B. Cook, A. Podelski, A. Ribalcsenko Terminátora (2006)nagyon sok praktikus programra m¶ködik...
Rekurzió