Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot...

35

Transcript of Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot...

Page 1: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Rekurzió

2009. február 17.

Rekurzió

Page 2: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 3: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 4: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 5: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 6: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 7: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 8: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 9: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 10: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 11: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 12: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Fibonacci a természetben

Egy el®fordulás a sok közül...

Rekurzió

Page 13: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Friss könyv hasonló sorozatokról

Rekurzió

Page 14: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Aranymetszés

Az aranymetszés

a + b

a=

a

b= φ.

φ =1 +

√5

2≈ 1.6180339887498948482...

Rekurzió

Page 15: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Az aranytéglalap és egy aranyspirál

A legszebb téglalap. Sok m¶alkotásban megtalálható...

Rekurzió

Page 16: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 17: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 18: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Összefésüléses rendezés II.

Rekurzió

Page 19: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 20: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Természetes nyelv és rekurzió

A macska, amit a kutya, ami megveszett, amikor a róka, aminekfoltos a bundája, megharapta, megmart, elszaladt.

Rekurzió

Page 21: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 22: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Egy rekurzív meghatározás

rekurzió

Ha még mindig nem érted, lásd: rekurzió

Rekurzió

Page 23: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Ugyanaz, látványosabban

Rekurzió

Page 24: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Kép a képben

A királyi kakaó:

Rekurzió

Page 25: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Önhivatkozás: Russell és Escher

Russell borbélya épp azokat borotválja, akik nem magukborotválkoznak...

Rekurzió

Page 26: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Donalbain kezdi az egész rémséget elölr®l...

Rekurzió

Page 27: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Pattkörök a számítástudományban

Egy sorosítási hálózat

Konkrétabban...

Rekurzió

Page 28: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 29: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 30: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

- 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ó

Page 31: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 32: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó

Page 33: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Nem biztos, hogy rekurzió, de...

Escher: Menny és Pokol

Rekurzió

Page 34: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

Escher hiperbolikus halai

Rekurzió

Page 35: Rekurzió - Typotex · 2009. 2. 24. · Valami meghatározásféle Szabály , amivel egy dolgot hasonló, egyszer¶bbek segítségével adunk meg. Akkor igazán érdekes, ha a szabályt

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ó