Recursion and Recurrence Relations

35
Faculty of Informatics, Burapha University 1 Recursion and Recurrence Relations

description

Recursion and Recurrence Relations. Recursive Definitions. การเรียกซ้ำ( Recursion ) เป็นหลักการที่เกี่ยวข้องอย่างใกล้ชิดกับการอุปนัยเชิงคณิตศาสตร์( mathematical induction ) - PowerPoint PPT Presentation

Transcript of Recursion and Recurrence Relations

Page 1: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 1

Recursion and Recurrence Relations

Page 2: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 22

Recursive Definitions• การเรยกซำาการเรยกซำา((RecursionRecursion)) เปนหลกการทเกยวของอยางใกลชดเปนหลกการทเกยวของอยางใกลชด

กบการอปนยเชงคณตศาสตรกบการอปนยเชงคณตศาสตร((mathematical induction))• ในการอปนย เราพสจนวาฟงกชนขอความในการอปนย เราพสจนวาฟงกชนขอความ((predicate) ) PP เปนจรง เปนจรง

สำาหรบสมาชกทกตวของเซตอนนตใดๆโดยพสจนคาความจรงสำาหรบสมาชกทกตวของเซตอนนตใดๆโดยพสจนคาความจรงของของ predicate สำาหรบสมาชกจำานวนมาก ในรปของสมาชกทมสำาหรบสมาชกจำานวนมาก ในรปของสมาชกทมขนาดเลกกวาขนาดเลกกวา

• ในการนยามแบบเรยกซำ/าในการนยามแบบเรยกซำ/า((recursive definitionsrecursive definitions) ) เรานยามฟงเรานยามฟงกชน ฟงกชนขอความ เซต หรอโครงสรางอนๆกชน ฟงกชนขอความ เซต หรอโครงสรางอนๆ บนโดเมนหรอบนโดเมนหรอเอกภพสมพทธใดๆในรปของสมาชกทมขนาดเลกกวาเอกภพสมพทธใดๆในรปของสมาชกทมขนาดเลกกวา

• การเรยกซำ/าการเรยกซำ/า เปนรปแบบทวไปในการนยามวตถใดๆ ในรปของตวเปนรปแบบทวไปในการนยามวตถใดๆ ในรปของตวมนเองมนเอง

Page 3: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 33

Recursively Defined Functionsตวอยาง เชนตวอยาง เชน:: • ลำาดบลำาดบ {{aann} } ของยกกำาลงสอง ของยกกำาลงสอง 1,2,4,8,… 1,2,4,8,… นยามโดยนยามโดย

aann = 2 = 2nn เมอเมอ nn = 0, 1, 2, … = 0, 1, 2, …

• และ สามารถนยามแบบเรยกซำ/าไดดงน/และ สามารถนยามแบบเรยกซำ/าไดดงน/::aa00 = 1 = 1aann = 2a = 2an-1n-1 เมอเมอ nn = 0, 1, 2, … = 0, 1, 2, …

• จากตวอยาง จะเหนไดชดวา อปนย และการเรยกซำ/าน/นมหลกจากตวอยาง จะเหนไดชดวา อปนย และการเรยกซำ/าน/นมหลกการคลายคลงกนการคลายคลงกน

Page 4: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 44

Recursively Defined Functions

• เราสามารถใชวธตอไปน/ ในการนยามฟงกชนใดๆทมเราสามารถใชวธตอไปน/ ในการนยามฟงกชนใดๆทมโดเมนเปนจำานวนนบโดเมนเปนจำานวนนบ::

• ข/นพ/นฐานข/นพ/นฐาน((Base caseBase case)):: กำาหนดคาของฟงกชนเมอ กำาหนดคาของฟงกชนเมอ pre-pre-image image เปนศนยเปนศนย((หาวาคาหาวาคา ff(0)=?(0)=?))

• ข/นเรยกซำ/าข /นเรยกซำ/า((RecursionRecursion)):: สรางกฎสำาหรบหาคาฟงกชนเมอ สรางกฎสำาหรบหาคาฟงกชนเมอpre-image pre-image เปนจำานวนเตมใดๆ จากคาของฟงกชนทมคา เปนจำานวนเตมใดๆ จากคาของฟงกชนทมคา pre-image pre-image เปนจำานวนเตมทนอยกวาเปนจำานวนเตมทนอยกวา

• การนยามดงกลาวขางตน เรยกวา การเรยกซำ/า การนยามดงกลาวขางตน เรยกวา การเรยกซำ/า((recursiverecursive) ) หรอการนยามเชงอปนยหรอการนยามเชงอปนย((inductive definitioninductive definition))

Page 5: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 55

Recursively Defined Functions

ตวอยาง เชน ตวอยาง เชน::f(0) = 3f(0) = 3f(n) = 2f(n-1) + 3f(n) = 2f(n-1) + 3f(0) = 3f(0) = 3f(1) = 2 f(1) = 2 f(0) + 3 = 2 f(0) + 3 = 23 + 3 = 93 + 3 = 9f(2) = 2 f(2) = 2 f(1) + 3 = 2 f(1) + 3 = 29 + 3 = 219 + 3 = 21f(3) = 2 f(3) = 2 f(2) + 3 = 2 f(2) + 3 = 221 + 3 = 4521 + 3 = 45f(4) = 2 f(4) = 2 f(3) + 3 = 2 f(3) + 3 = 245 + 3 = 9345 + 3 = 93จงหาจงหา f(5), f(6), f(7), f(8)f(5), f(6), f(7), f(8)

Page 6: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 66

Recursive definition of Factorial

• กำาหนดนยามเชงอปนยกำาหนดนยามเชงอปนย((แบบเรยกซำ/าแบบเรยกซำ/า) ) ของฟงกชนแฟคของฟงกชนแฟค ทอเรยล ดงน/ ทอเรยล ดงน/,,

FF((nn) :) :≡≡ nn! :! :≡ ≡ == 1 122……nn

– Base case: Base case: FF(0) :(0) :≡≡ 1 1

– Recursive part: Recursive part: FF((nn) = () = (nn) ) FF((n-1n-1) )

• FF(0) = 1(0) = 1• FF(1) = 1 (1) = 1 FF(0) = 1(0) = 11 = 11 = 1• FF(2) = 2 (2) = 2 FF(1) = 2(1) = 21 = 21 = 2• FF(3) = 3 (3) = 3 FF(2) = 3(2) = 32 = 62 = 6• FF(4) = 4 (4) = 4 FF(3) = 4(3) = 46 = 246 = 24

n

i

i1

Page 7: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 77

Examples• จงเขยนนยามแบบเรยกซำ/าของจงเขยนนยามแบบเรยกซำ/าของ::

ii++nn ( (ii เปนจำานวนเตมเปนจำานวนเตม, , nn เปนจำานวนนบเปนจำานวนนบ) ) โดยใชรปแบบ โดยใชรปแบบ ss((ii) = ) = ii+1+1

aa··nn ( (aa เปนจำานวนจรงเปนจำานวนจรง, , nn เปนจำานวนนบเปนจำานวนนบ) ) โดยใชการโดยใชการบวกบวก

aann ((aa เปนจำานวนจรงเปนจำานวนจรง, , nn เปนจำานวนนบเปนจำานวนนบ) ) โดยใชการโดยใชการคณคณ ((สำาหรบอนกรมของจำานวน สำาหรบอนกรมของจำานวน {{aaii})}) ((สำาหรบอนกรมของจำานวน สำาหรบอนกรมของจำานวน {{aaii})}) ((สำาหรบอนกรมของเซตสำาหรบอนกรมของเซต{{SSii})})

n

iia

0

n

iia

0

n

iiS

0

Page 8: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 8

ii++nn ( (ii เปนจำานวนเตมเปนจำานวนเตม, , nn เปนจำานวนนบเปนจำานวนนบ)) โดยใชรปแบบ โดยใชรปแบบ SS((ii) = ) = ii+1+1

• ชดลำาดบของ ii++nn ไดแก i+0, i+1, i+2, i+3,…• Base case คอ S(0) = i• Recursive part คอ S(n) = S(n-1)+1• จะไดวา S(0) = i

S(1) = S(0) +1 = i+1 S(2) = S(1) +1 = (i+1)+1 = i+2

S(3) = S(2) +1 = (i+2)+1 = i+3 …

Page 9: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 9

• Base case คอ• Recursive part คอ• จะไดวา

∑∑00≤≤ii≤≤nn aaii ( (สำาหรบอนกรมของสำาหรบอนกรมของจำานวน จำานวน {{aaii})})

n

n

ii aaaaa

...2100

0

00

ii aa

n

i

n

inii aaa

0

1

0

...

32

3

010

2

03

2

0210

1

02

1

010

0

01

0

00

aaaaaaa

aaaaaa

aaaaa

aa

i iii

i iii

i iii

ii

Page 10: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1010

The Fibonacci Series• อนกรมไฟโบแนซซอนกรมไฟโบแนซซ((Fibonacci seriesFibonacci series)) ffnn≥0≥0 นยามโดยนยามโดย::

ff00 : :≡ 0, ≡ 0, ff11 :≡ 1, :≡ 1, ffnn≥2≥2 :≡ :≡ ffnn−1−1 + + ffnn−2−2

f(0) = 0f(0) = 0f(1) = 1f(1) = 1f(2) = f(1) + f(0) = 1 + 0 = 1f(2) = f(1) + f(0) = 1 + 0 = 1f(3) = f(2) + f(1) = 1 + 1 = 2f(3) = f(2) + f(1) = 1 + 1 = 2f(4) = f(3) + f(2) = 2 + 1 = 3f(4) = f(3) + f(2) = 2 + 1 = 3......

f(4)f(4)

f(3)f(3)

f(2)f(2)

f(1)f(1) f(0)f(0)

f(1)f(1)

f(2)f(2)

f(1)f(1) f(0)f(0)

Page 11: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1111

Recursive Euclid’s Algorithmprocedureprocedure gcdgcd((aa,,bbN,nonnegative integer with a>bN,nonnegative integer with a>b))

ifif bb = 0 = 0 thenthen return return aaelse returnelse return gcdgcd((bb,,aa modmod bb))

• สงเกตวาอลกอรธมแบบเรยกซำ/าจะทำาใหเขยนโปรแกรมไดสงเกตวาอลกอรธมแบบเรยกซำ/าจะทำาใหเขยนโปรแกรมไดส/นส/นกวากวา งายกวางายกวาและงายตอการทำาความเขาใจมากกวาและงายตอการทำาความเขาใจมากกวา

• แตการเขยนโปรแกรมแบบเรยกซำ/าจะใชพ/นทในหนวยความจำาทแตการเขยนโปรแกรมแบบเรยกซำ/าจะใชพ/นทในหนวยความจำาทเรยกวาสแตกเรยกวาสแตก(stack)(stack)มากกวาการเขยนโปรแกรมแบบวนลปมากกวาการเขยนโปรแกรมแบบวนลป

• สำาหรบอลกอรธมแบบเรยกซำ/าสำาหรบอลกอรธมแบบเรยกซำ/า(Recursive)(Recursive) ใดๆ จะมอลกอรธม ใดๆ จะมอลกอรธมแบบวนลปแบบวนลป(Iterative)(Iterative)ทสมมลทสมมล((ใหผลลพธทเหมอนกนใหผลลพธทเหมอนกน))กนเสมอกนเสมอ

• อยางไรกตาม อลกอรธมแบบวนลปมกจะมประสทธภาพ อยางไรกตาม อลกอรธมแบบวนลปมกจะมประสทธภาพมากกวาในแงของการใชพ/นทและเวลาทนอยกวาอลกอรธมมากกวาในแงของการใชพ/นทและเวลาทนอยกวาอลกอรธมแบบเรยกซำ/าแบบเรยกซำ/า

Page 12: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1212

Recursive Fibonacci Algorithm

procedureprocedure fibo( fibo(nn: nonnegative integer): nonnegative integer)ifif n n 1 1 thenthen

returnreturn nnelseelse

returnreturn fibo( fibo(nn – 1) + fibo( – 1) + fibo(nn – 2) – 2)

Page 13: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1313

Iterative Fibonacci Algorithmprocedure procedure iterative_fibo(n: nonnegative integer)iterative_fibo(n: nonnegative integer)ifif n = 0 n = 0 thenthen y := 0y := 0elseelsebeginbegin

x := 0x := 0y := 1y := 1forfor i := 1 i := 1 toto n-1 n-1beginbegin

z := x + yz := x + yx : = yx : = yy := zy := z

endendendend {y is the n-th Fibonacci number}{y is the n-th Fibonacci number}

Page 14: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1414

Recursive Algorithms

• ตวอยางตวอยาง: : อลกอรธมสำาหรบการคำานวณคาอลกอรธมสำาหรบการคำานวณคา aann

procedureprocedure powerpower((aa≠≠0: real, 0: real, nnNN))ifif n n = 0 = 0 then return then return 11elseelse returnreturn a a · · powerpower((aa, , nn−1)−1)

จงเขยนจงเขยนอลกอรธมคำานวณคาอลกอรธมคำานวณคา aann เดยวกนน/แบบเดยวกนน/แบบเรยกซำ/าเรยกซำ/า

Page 15: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1515

Recurrence Relations

Page 16: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 16

Recurrence Relations

• ความสมพนธเวยนเกดความสมพนธเวยนเกด((recurrence relationrecurrence relation)) ของลำาดบของลำาดบ {{aann}} คอสมการทแสดงคอสมการทแสดง aann ในรปของสมาชกกอนหนาในรปของสมาชกกอนหนา aa00, , …, …, aann−1−1 ของลำาดบน/นๆของลำาดบน/นๆ สำาหรบทกคาสำาหรบทกคา nn≥≥nn00

– จะเหนวา ความสมพนธเวยนเกดน /นนยามไดเชนเดยวกบ การจะเหนวา ความสมพนธเวยนเกดน /นนยามไดเชนเดยวกบ การนยามแบบเรยกซำ/านยามแบบเรยกซำ/า แตกตางกนทไมมกรณพ/นฐานแตกตางกนทไมมกรณพ/นฐาน((base cases)base cases)

• เราสามารถใช ลำาดบใดๆทไมอยในรปของการเรยกซำ/า เปนเราสามารถใช ลำาดบใดๆทไมอยในรปของการเรยกซำ/า เปนผลเฉลยของความสมพนธเวยนเกดทกำาหนดได หากลำาดบผลเฉลยของความสมพนธเวยนเกดทกำาหนดได หากลำาดบดงกลาวสอดคลองกบนยามของการเวยนเกดดงกลาวสอดคลองกบนยามของการเวยนเกด– ความสมพนธเวยนเกดหนงๆ อาจมผลเฉลยไดมากกวาหนงผลความสมพนธเวยนเกดหนงๆ อาจมผลเฉลยไดมากกวาหนงผล

เฉลยเฉลย

Page 17: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 17

Recurrence Relation Example

• พจารณาความสมพนธเวยนเกดพจารณาความสมพนธเวยนเกดaann = 2 = 2aann−1−1 − − aann−2−2 ( (nn≥2)≥2)

• ลำาดบตอไปน/เปนผลเฉลยของความสมพนธลำาดบตอไปน/เปนผลเฉลยของความสมพนธขางตนหรอไมขางตนหรอไม??

aann = 3 = 3nnaann = 2 = 2nn

aann = 5 = 5

Yes

Yes

No

Page 18: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 18

Recurrence Relations

ตวอยางตวอยาง:: พจารณาความสมพนธเวยนเกดพจารณาความสมพนธเวยนเกด aann = 2a = 2an-1n-1 – a – an-2n-2 for n = 2, 3, 4, … for n = 2, 3, 4, …

•ลำาดบลำาดบ {a{ann} } เมอเมอ aann=3n =3n เปนผลเฉลยของความสมพนธเวยนเกดทกำาหนดหรอเปนผลเฉลยของความสมพนธเวยนเกดทกำาหนดหรอไมไม??สำาหรบสำาหรบ n n 2 2 จะไดวาจะไดวา 2a2an-1n-1 – a – an-2n-2 = 2(3(n – 1)) – 3(n – 2) = 3n = a = 2(3(n – 1)) – 3(n – 2) = 3n = ann

•ดงน/นดงน/น {a{ann} } เมอเมอ aann=3n =3n เปนผลเฉลยของความสมพนธเวยนเกดทกำาหนดเปนผลเฉลยของความสมพนธเวยนเกดทกำาหนด• ลำาดบ ลำาดบ {a{ann} } เมอเมอ aann=5 =5 เปนผลเฉลยของความสมพนธเวยนเกดขางตนหรอไมเปนผลเฉลยของความสมพนธเวยนเกดขางตนหรอไม??•เมอเมอ n n 2 2 จะไดวาจะไดวา 2a2an-1n-1 – a – an-2n-2 = 2 = 25 - 5 = 5 = a5 - 5 = 5 = ann

•ดงน/นดงน/น {a{ann} } เมอเมอ aann=5 =5 เปนผลเฉลยของความสมพนธเวยนเกดขางตนเปนผลเฉลยของความสมพนธเวยนเกดขางตน

Page 19: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 19

Modeling with Recurrence Relations

ตวอยางตวอยาง:: • นายภกด ฝากเงน นายภกด ฝากเงน 10,000 10,000 บาทไวในบญชออมทรพย ทให บาทไวในบญชออมทรพย ทให

ดอกเบ/ย ดอกเบ/ย 5% 5% ตอป สะสมไวเปนเงนฝากตอไปทกป เมอเวลา ตอป สะสมไวเปนเงนฝากตอไปทกป เมอเวลา ผานไป ผานไป 30 30 ปเงนในบญชเงนฝากของนายภกดจะเปนเทาไรปเงนในบญชเงนฝากของนายภกดจะเปนเทาไร??

วธทำาวธทำา::•ใหให PPnn แทนจำานวนเงนในบญชหลงจากเวลาผานไป แทนจำานวนเงนในบญชหลงจากเวลาผานไป n n ปป• จงเขยน จงเขยน PPnn ในรปของ ในรปของ PPn-1n-1??

Page 20: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 20

Modeling with Recurrence Relations

• เราสามารถเขยนความสมพนธเวยนเกดของ เราสามารถเขยนความสมพนธเวยนเกดของ PPn n ในรปของ ในรปของ PPn-1 n-1 ไดไดดงน/ดงน/::PPnn = P = Pn-1n-1 + 0.05P + 0.05Pn-1n-1 = 1.05P = 1.05Pn-1n-1

เงอนไขเรมตน คอ เงอนไขเรมตน คอ PP00 = 10,000 = 10,000 ดงน/น จะไดวา ดงน/น จะไดวา::PP11 = 1.05P = 1.05P00 PP22 = 1.05P = 1.05P11 = (1.05) = (1.05)22PP00

PP33 = 1.05P = 1.05P22 = (1.05) = (1.05)33PP00

……PPnn = 1.05P = 1.05Pn-1n-1 = (1.05) = (1.05)nnPP00

• จะเหนวา ไดสตรสำาหรบคำานวณคา จะเหนวา ไดสตรสำาหรบคำานวณคา PPnn สำาหรบจำานวนนบสำาหรบจำานวนนบ n n ใดๆได ใดๆไดโดยไมจำาเปนตองทำาการคำานวณเรยกซำ/าหลายคร/งโดยไมจำาเปนตองทำาการคำานวณเรยกซำ/าหลายคร/ง

Page 21: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 21

Modeling with Recurrence Relations

•จงสามารถใชสตรทหาไดคำานวณหาจงสามารถใชสตรทหาไดคำานวณหา PP3030 ภายใตเงอนไขเรมตนภายใตเงอนไขเรมตน PP00 = 10,000: = 10,000:

PP3030 = (1.05) = (1.05)303010,000 = 43,219.4210,000 = 43,219.42

ดงน/นเมอผานไปดงน/นเมอผานไป 30 30 ป เงนฝากในบญชจะมเงนท/งหมด ป เงนฝากในบญชจะมเงนท/งหมด43,219.4243,219.42 บาทบาท

Page 22: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 22

Example Applications and Solving Compound Interest RR

• ความสมพนธเวยนเกดของการฝากเงนธนาคารทความสมพนธเวยนเกดของการฝากเงนธนาคารทอตราดอกเบ/ยอตราดอกเบ/ย PP% % ตอชวงเวลาทกำาหนดตอชวงเวลาทกำาหนด::MMnn = = MMnn−1−1 + ( + (PP/100)/100)MMnn−1−1

• MMnn = = MMnn−1−1 + ( + (PP/100)/100)MMnn−1−1

= (1 + = (1 + PP/100) /100) MMnn−1−1

= = rr MMnn−1−1 ((ใหให rr = = 1 + 1 + PP/100/100))

= = rr ( (rr MMnn−2−2))= = rr··rr·(·(rr MMnn−3−3)) ……เชนน/ไปเรอยๆเชนน/ไปเรอยๆ……= = rrnn MM00

Page 23: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University

Modeling with Recurrence Relations

• ความสมพนธเวยนเกดทเปนทรจกกนดอนหนงในกล ม นกคณตศาสตร คอ ป ญหาของ Leonard diPisa ซงรจกกนใน

นาม Fibonacci โดยFibonacci ไดต/งป ญหาในหนงสอLiber abaci ราว ๆ ครสตศตวรรษท13 ดงน/

“กระตายแรกเกดเพศผและเพศเมยคหนงถกนำาไปปลอยไวทเกาะแห งหนง อยากทราบวาจะมกระตายท/งหมดกค เมอเวลาผ านไป n เดอน โดยมขอสมมตว า เมอกระตายท/งสอง

มอายครบ 2 เดอนจงจะสามารถใหกำาเนดกระตายเพศผและ เพศเมยอก 1 ค และเมอจดเรมตนบนเกาะน/นไมมกระตาย

อย ”เลย

Page 24: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University

Modeling with Recurrence Relations

กระตายทเกดใหม กระตายทมอยเดม

Page 25: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University

Modeling with Recurrence Relationsกำาหนดให fn เปนจำานวนคของกระต าย เมอตอนต นเดอนท n

สงเกตจากภาพท 1 จะเหนว า จำานวนกระตายเมอต นเดอนท 3 เทากบจำานวน

กระตายเมอต นเดอนท 2 บวกกบจำานวนกระตายเมอต นเดอนท 1 และจำานวน

กระตายเมอต นเดอนท 4 เทากบจำานวนกระตายเมอต น เดอนท 3 บวกกบจำานวน

กระตายเมอต นเดอนท 2 เปนเช นน/เรอย ๆ ไป ดงน/นfn = fn-1 + fn-2

ถ าเรากำาหนด f0 = 0 และเราทราบว า f1 = 1 แลวสมการขางตน สำาหรบn 2

ดงน/น f2 = f1 + f0 = 2f3 = f2 + f1 = 3f4 = f3 + f2 = 5f5 = f4 + f3 = 8

Page 26: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 26

Modeling with Recurrence Relations

ตวอยางตวอยาง:: •ใหให aann แทนจำานวนบตสตรงยาว แทนจำานวนบตสตรงยาว n n ทไมมเลขทไมมเลข 00 ตดกนตดกน((ในทในท

“ ”น/จะเรยกวา สตรงทถกตอง“ ”น/จะเรยกวา สตรงทถกตอง )) จงเขยนความสมพนธเวยนจงเขยนความสมพนธเวยน เกด และกำาหนดเงอนไขเรมตนสำาหรบลำาดบ เกด และกำาหนดเงอนไขเรมตนสำาหรบลำาดบ {a{ann}}

วธทำาวธทำา::•แนวคดแนวคด: : จำานวนของสตรงทถกตอง หาไดจากจำานวนของ จำานวนของสตรงทถกตอง หาไดจากจำานวนของสตรงทถกตองทลงทายดวยเลขสตรงทถกตองทลงทายดวยเลข 1 1 หนงตว หนงตว บวกบวกกบจำานวนกบจำานวนของสตรงทถกตองทลงทายดวยเลขของสตรงทถกตองทลงทายดวยเลข 00 หนงตวหนงตว

Page 27: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 27

Modeling with Recurrence Relations

• สมมตให สมมตให n n 3, 3, เพอกำาหนดใหสตรงยาวอยางนอยเพอกำาหนดใหสตรงยาวอยางนอย 3 3 บตบตกรณท กรณท 11• สมมตตอไปอกวา เราทราบวามบตสตรงทถกตองจำานวน สมมตตอไปอกวา เราทราบวามบตสตรงทถกตองจำานวน aan-1n-1 ททยาวยาว (n – 1)(n – 1)

ดงน/นดงน/น มกบตสตรงทยาว มกบตสตรงทยาว n n ทลงทายดวยเลข ทลงทายดวยเลข 11 หนงตวหนงตว??•ตอบตอบ จะมสตรงดงกลาวจำานวนจะมสตรงดงกลาวจำานวน aan-1n-1 สตรงสตรง, , ซงกคอเซตของซงกคอเซตของสตรงทถกตองทยาวสตรงทถกตองทยาว (n – 1)(n – 1) และสตรงเหลาน/นตอทายดวยเลขและสตรงเหลาน/นตอทายดวยเลข 11 หนงตวหนงตว•สงเกตวาสงเกตวา:: เมอใดกตามทเราเพมเลข เมอใดกตามทเราเพมเลข 11 หนงตวตอทายสตรงทหนงตวตอทายสตรงท

ถกตอง สตรงทไดกยงคงเปนสตรงทถกตองเชนเดม ถกตอง สตรงทไดกยงคงเปนสตรงทถกตองเชนเดม

Page 28: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 28

Modeling with Recurrence Relations

กรณท กรณท 22สงทเราจำาเปนตองทราบตอไปคอสงทเราจำาเปนตองทราบตอไปคอ: : มสตรงทถกตองทยาวมสตรงทถกตองทยาว nn และลงทายดวยและลงทายดวยเลข เลข 00 หนงตวหนงตวกบตสตรงกบตสตรง??•สตรงทถกตองทยาว สตรงทถกตองทยาว nn ซงลงทายดวยเลขซงลงทายดวยเลข 00 หนงตว หนงตว ตองมเลข ตองมเลข 11 ในบตทในบตท (n – (n – 1)1) ( (ไมเชนน/นสตรงเหลาน /นจะลงทายดวย ไมเชนน/นสตรงเหลาน /นจะลงทายดวย 00 00 ซงจะเปนสตรงทไมถกตองซงจะเปนสตรงทไมถกตอง))•และมบตสตรงทถกตองทยาวและมบตสตรงทถกตองทยาว (n – 1)(n – 1) ซงลงทายดวยเลข ซงลงทายดวยเลข 11 หนงตวกบตหนงตวกบตสตรงสตรง??•เราทราบอยแลววามเราทราบอยแลววาม aan-1n-1 สตรงทยาวสตรงทยาว nn ซงลงทายดวยเลข ซงลงทายดวยเลข 11 หนงตวหนงตว((จากจากกรณท กรณท 1)1)•ดงน/น มดงน/น ม aan-2n-2 บตสตรงทยาวบตสตรงทยาว (n – 1)(n – 1) ซงลงทายดวยเลข ซงลงทายดวยเลข 11 หนงตวหนงตว

Page 29: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 29

Modeling with Recurrence Relations

•ดงน/นมสตรงทถกตองจำานวนดงน/นมสตรงทถกตองจำานวน aan-2n-2 ทยาวทยาว nn ซงลงทายดวยซงลงทายดวย เลข เลข 00 หนงตวหนงตว((สตรงทถกตองท/งหมดทยาวสตรงทถกตองท/งหมดทยาว (n – 2) (n – 2) และตอและตอ

ทายดวยเลขทายดวยเลข 10 )10 )

• ดงทกลาวแลวขางตน จำานวนของสตรงทถกตอง คอจำานวน ดงทกลาวแลวขางตน จำานวนของสตรงทถกตอง คอจำานวนของของบตบตสตรงทถกตองทลงทายดวยเลขสตรงทถกตองทลงทายดวยเลข 11 หนงตวบวกกบหนงตวบวกกบจำานวนของสตรงทถกตองทลงทายดวยเลขจำานวนของสตรงทถกตองทลงทายดวยเลข 00 หนงตวหนงตว

• ดงน/นจงไดความสมพนธเวยนเกด ดงน/ ดงน/นจงไดความสมพนธเวยนเกด ดงน/::aann = a = an-1n-1 + a + an-2n-2

Page 30: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 30

Modeling with Recurrence Relations

•เงอนไขเรมตนคออะไรเงอนไขเรมตนคออะไร??

•aa11 = 2 (0 = 2 (0 และและ 1)1)

•aa22 = 3 (01, 10, = 3 (01, 10, และและ 11)11)

•aa33 = a = a22 + a + a11 = 3 + 2 = 5 = 3 + 2 = 5

•aa44 = a = a33 + a + a22 = 5 + 3 = 8 = 5 + 3 = 8

•aa55 = a = a44 + a + a33 = 8 + 5 = 13 = 8 + 5 = 13•……

• ลำาดบเหลาน/เปนไปตามความสมพนธเวยนเกดของ ลำาดบเหลาน/เปนไปตามความสมพนธเวยนเกดของ Fibonacci Fibonacci sequencesequence• เพราะเพราะ aa11 = f = f33 และและ aa22 = f = f44, , จะไดวา จะไดวา aann = f = fn+2n+2

Page 31: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University

Tower of Hanoi Example

• นยายปรมปราเกยวกบหอคอยแหงฮานอยเลาวาพระทประจำาอยในหอคอยแหงฮานอยประกาศว า ถาทานจะยายแผ นทองคำาจำานวน 64 แผน ทเรยงอยทเสาตนหนงโดยมแผนทองคำาขนาดใหญอยดานลางและแผนทองทมขนาดเลกกวาอยดานบน ไปยงวางเรยงไวทเสาอกตนหนงในลกษณะเดยวกน โดยในการยายแผ นทองคำา 1 แผ น ใช เวลา 1 วนาท แลวเมอทานยายแผนทองคำาจากเสาต นท 1 ไปยงเสาตนอนเสรจ

ส/น โลกกจะแตกสลายไปแลว

Page 32: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 32

Tower of Hanoi Example

• ปญหาปญหา: : ยายแผนดสกจากหลกท ยายแผนดสกจากหลกท 1 1 ไปยงหลกทไปยงหลกท 22– กฎกฎ: (a) : (a) แตละคร/งยายไดเพยงแผนเดยวแตละคร/งยายไดเพยงแผนเดยว– (b) (b) แผนดสกทใหญกวาจะอยบนแผนทเลกกวาไมแผนดสกทใหญกวาจะอยบนแผนทเลกกวาไม

ไดได

หลก #1 หลก #2 หลก #3

Page 33: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 33

Hanoi Recurrence Relation• ใหให HHnn = = จำานวนคร/งของจำานวนคร/งของ การยายแผนดสก การยายแผนดสก nn แผนแผนวธการยายแผนดสกวธการยายแผนดสก::• ยายแผนดสกยายแผนดสก nn−1−1 แผนทอยดานบนไปยงหลกอนๆแผนทอยดานบนไปยงหลกอนๆ ((มการยายมการยาย

แผนแผน HHnn−1−1 คร/งคร/ง))• ยายแผนดสกทอยดานลางยายแผนดสกทอยดานลาง((ยาย ยาย 1 1 คร/งคร/ง))• ยายแผนดสกยายแผนดสก nn−1−1 แผนทอยดานบนแผนทอยดานบน(( ทยายไปไวยงหลกทยายไปไวยงหลก

อนอน))ไปไวบนแผนทอยดานลางไปไวบนแผนทอยดานลาง ((มการยายแผนมการยายแผน HHnn−1−1 คร/งคร/ง))• สงเกตวาสงเกตวา:: HHnn = 2 = 2HHnn−1−1 + 1 + 1

– จำานวนคร/งของการยายแผนดสกสามารถอธบายไดดวยความจำานวนคร/งของการยายแผนดสกสามารถอธบายไดดวยความสมพนธเวยนเกดสมพนธเวยนเกด

Page 34: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University 34

Solving Tower of Hanoi RR

HHnn = 2 = 2 HHnn−1−1 + 1 + 1

= = 2 (2 2 (2 HHnn−2−2 + 1) + 1 + 1) + 1 = 2= 22 2 HHnn−2−2 + 2 + 1 + 2 + 1

= 2= 222(2 (2 HHnn−3−3 + 1) + 2 + 1 + 1) + 2 + 1 = 2= 233 HHnn−3−3 + 2 + 222 + 2 + 1 + 2 + 1

… … = 2= 2nn−1−1 HH11 + 2 + 2nn−2−2 + … + 2 + 1 + … + 2 + 1

= 2= 2nn−1−1 + 2 + 2nn−2−2 + … + 2 + 1 + … + 2 + 1 ((เพราะเพราะ HH11 = 1) = 1)

= =

= 2= 2nn − 1 − 1

1

0

2n

i

i1,

)1()1( 1

0

r

rraar

nn

i

i

Page 35: Recursion and  Recurrence Relations

Faculty of Informatics, Burapha University

Solving Tower of Hanoi RR

• จะไดว า จำานวนคร/งของการยายแผนทองคำาจำา นวน 64 แผน

H64 = 264- 1 = 18,446,774,073,709,551,615 • ซงถาย าย 1 แผนใช เวลา 1 วนาท แลวจะใชเวลา

ท/งหมดมากกว า 500 พนลานปทเดยว