View
194
Download
7
Category
Preview:
DESCRIPTION
Recursion and Recurrence Relations. Recursive Definitions. การเรียกซ้ำ( Recursion ) เป็นหลักการที่เกี่ยวข้องอย่างใกล้ชิดกับการอุปนัยเชิงคณิตศาสตร์( mathematical induction ) - PowerPoint PPT Presentation
Citation preview
Faculty of Informatics, Burapha University 1
Recursion and Recurrence Relations
Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 22
Recursive Definitions• การเรยกซำาการเรยกซำา((RecursionRecursion)) เปนหลกการทเกยวของอยางใกลชดเปนหลกการทเกยวของอยางใกลชด
กบการอปนยเชงคณตศาสตรกบการอปนยเชงคณตศาสตร((mathematical induction))• ในการอปนย เราพสจนวาฟงกชนขอความในการอปนย เราพสจนวาฟงกชนขอความ((predicate) ) PP เปนจรง เปนจรง
สำาหรบสมาชกทกตวของเซตอนนตใดๆโดยพสจนคาความจรงสำาหรบสมาชกทกตวของเซตอนนตใดๆโดยพสจนคาความจรงของของ predicate สำาหรบสมาชกจำานวนมาก ในรปของสมาชกทมสำาหรบสมาชกจำานวนมาก ในรปของสมาชกทมขนาดเลกกวาขนาดเลกกวา
• ในการนยามแบบเรยกซำ/าในการนยามแบบเรยกซำ/า((recursive definitionsrecursive definitions) ) เรานยามฟงเรานยามฟงกชน ฟงกชนขอความ เซต หรอโครงสรางอนๆกชน ฟงกชนขอความ เซต หรอโครงสรางอนๆ บนโดเมนหรอบนโดเมนหรอเอกภพสมพทธใดๆในรปของสมาชกทมขนาดเลกกวาเอกภพสมพทธใดๆในรปของสมาชกทมขนาดเลกกวา
• การเรยกซำ/าการเรยกซำ/า เปนรปแบบทวไปในการนยามวตถใดๆ ในรปของตวเปนรปแบบทวไปในการนยามวตถใดๆ ในรปของตวมนเองมนเอง
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, …
• จากตวอยาง จะเหนไดชดวา อปนย และการเรยกซำ/าน/นมหลกจากตวอยาง จะเหนไดชดวา อปนย และการเรยกซำ/าน/นมหลกการคลายคลงกนการคลายคลงกน
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))
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)
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
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
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 …
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
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)
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)ทสมมลทสมมล((ใหผลลพธทเหมอนกนใหผลลพธทเหมอนกน))กนเสมอกนเสมอ
• อยางไรกตาม อลกอรธมแบบวนลปมกจะมประสทธภาพ อยางไรกตาม อลกอรธมแบบวนลปมกจะมประสทธภาพมากกวาในแงของการใชพ/นทและเวลาทนอยกวาอลกอรธมมากกวาในแงของการใชพ/นทและเวลาทนอยกวาอลกอรธมแบบเรยกซำ/าแบบเรยกซำ/า
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)
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}
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 เดยวกนน/แบบเดยวกนน/แบบเรยกซำ/าเรยกซำ/า
Faculty of Informatics, Burapha Universityภาควชาวทยาการคอมพวเตอร ม.บรพา 1515
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)
• เราสามารถใช ลำาดบใดๆทไมอยในรปของการเรยกซำ/า เปนเราสามารถใช ลำาดบใดๆทไมอยในรปของการเรยกซำ/า เปนผลเฉลยของความสมพนธเวยนเกดทกำาหนดได หากลำาดบผลเฉลยของความสมพนธเวยนเกดทกำาหนดได หากลำาดบดงกลาวสอดคลองกบนยามของการเวยนเกดดงกลาวสอดคลองกบนยามของการเวยนเกด– ความสมพนธเวยนเกดหนงๆ อาจมผลเฉลยไดมากกวาหนงผลความสมพนธเวยนเกดหนงๆ อาจมผลเฉลยไดมากกวาหนงผล
เฉลยเฉลย
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
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 เปนผลเฉลยของความสมพนธเวยนเกดขางตนเปนผลเฉลยของความสมพนธเวยนเกดขางตน
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??
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 ใดๆได ใดๆไดโดยไมจำาเปนตองทำาการคำานวณเรยกซำ/าหลายคร/งโดยไมจำาเปนตองทำาการคำานวณเรยกซำ/าหลายคร/ง
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 บาทบาท
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
Faculty of Informatics, Burapha University
Modeling with Recurrence Relations
• ความสมพนธเวยนเกดทเปนทรจกกนดอนหนงในกล ม นกคณตศาสตร คอ ป ญหาของ Leonard diPisa ซงรจกกนใน
นาม Fibonacci โดยFibonacci ไดต/งป ญหาในหนงสอLiber abaci ราว ๆ ครสตศตวรรษท13 ดงน/
“กระตายแรกเกดเพศผและเพศเมยคหนงถกนำาไปปลอยไวทเกาะแห งหนง อยากทราบวาจะมกระตายท/งหมดกค เมอเวลาผ านไป n เดอน โดยมขอสมมตว า เมอกระตายท/งสอง
มอายครบ 2 เดอนจงจะสามารถใหกำาเนดกระตายเพศผและ เพศเมยอก 1 ค และเมอจดเรมตนบนเกาะน/นไมมกระตาย
อย ”เลย
Faculty of Informatics, Burapha University
Modeling with 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
Faculty of Informatics, Burapha University 26
Modeling with Recurrence Relations
ตวอยางตวอยาง:: •ใหให aann แทนจำานวนบตสตรงยาว แทนจำานวนบตสตรงยาว n n ทไมมเลขทไมมเลข 00 ตดกนตดกน((ในทในท
“ ”น/จะเรยกวา สตรงทถกตอง“ ”น/จะเรยกวา สตรงทถกตอง )) จงเขยนความสมพนธเวยนจงเขยนความสมพนธเวยน เกด และกำาหนดเงอนไขเรมตนสำาหรบลำาดบ เกด และกำาหนดเงอนไขเรมตนสำาหรบลำาดบ {a{ann}}
วธทำาวธทำา::•แนวคดแนวคด: : จำานวนของสตรงทถกตอง หาไดจากจำานวนของ จำานวนของสตรงทถกตอง หาไดจากจำานวนของสตรงทถกตองทลงทายดวยเลขสตรงทถกตองทลงทายดวยเลข 1 1 หนงตว หนงตว บวกบวกกบจำานวนกบจำานวนของสตรงทถกตองทลงทายดวยเลขของสตรงทถกตองทลงทายดวยเลข 00 หนงตวหนงตว
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 หนงตวตอทายสตรงทหนงตวตอทายสตรงท
ถกตอง สตรงทไดกยงคงเปนสตรงทถกตองเชนเดม ถกตอง สตรงทไดกยงคงเปนสตรงทถกตองเชนเดม
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 หนงตวหนงตว
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
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
Faculty of Informatics, Burapha University
Tower of Hanoi Example
• นยายปรมปราเกยวกบหอคอยแหงฮานอยเลาวาพระทประจำาอยในหอคอยแหงฮานอยประกาศว า ถาทานจะยายแผ นทองคำาจำานวน 64 แผน ทเรยงอยทเสาตนหนงโดยมแผนทองคำาขนาดใหญอยดานลางและแผนทองทมขนาดเลกกวาอยดานบน ไปยงวางเรยงไวทเสาอกตนหนงในลกษณะเดยวกน โดยในการยายแผ นทองคำา 1 แผ น ใช เวลา 1 วนาท แลวเมอทานยายแผนทองคำาจากเสาต นท 1 ไปยงเสาตนอนเสรจ
ส/น โลกกจะแตกสลายไปแลว
Faculty of Informatics, Burapha University 32
Tower of Hanoi Example
• ปญหาปญหา: : ยายแผนดสกจากหลกท ยายแผนดสกจากหลกท 1 1 ไปยงหลกทไปยงหลกท 22– กฎกฎ: (a) : (a) แตละคร/งยายไดเพยงแผนเดยวแตละคร/งยายไดเพยงแผนเดยว– (b) (b) แผนดสกทใหญกวาจะอยบนแผนทเลกกวาไมแผนดสกทใหญกวาจะอยบนแผนทเลกกวาไม
ไดได
หลก #1 หลก #2 หลก #3
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
– จำานวนคร/งของการยายแผนดสกสามารถอธบายไดดวยความจำานวนคร/งของการยายแผนดสกสามารถอธบายไดดวยความสมพนธเวยนเกดสมพนธเวยนเกด
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
Faculty of Informatics, Burapha University
Solving Tower of Hanoi RR
• จะไดว า จำานวนคร/งของการยายแผนทองคำาจำา นวน 64 แผน
H64 = 264- 1 = 18,446,774,073,709,551,615 • ซงถาย าย 1 แผนใช เวลา 1 วนาท แลวจะใชเวลา
ท/งหมดมากกว า 500 พนลานปทเดยว
Recommended