ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Tower of Hanoi
2
เป้าหมาย & กติกา
3
เสาสำรอง (auxiliary) เสาต้นทาง (from) เสาปลายทาง (to)
4
Algorithm - Tower of Hanoi
กรณี Base case : เมื่อ N=1(เหลือจานใบเดียวในเสา) ย้ายจากใบล่างสุดจากเสาต้นทาง ไปยัง เสาปลายทาง กรณี Recursive case : (มีจำนวน N จานในเสา) ย้าย N - 1 จาน จาก เสาต้นทาง ไปยัง เสาสำรอง ย้าย จานใบที่ N จาก เสาต้นทาง ไปยัง เสาปลายทาง ย้าย N – 1 จาน จาก เสาสำรอง ไปยัง เสาปลายทาง
5
Funtion moveDisks(N,frm,to,aux)
Algorithm - Tower of Hanoi Funtion moveDisks(N,frm,to,aux) 1. if(N=1) then Move Disk 1 from frm -> to 2. Else { moveDisks(N-1,frm,aux,to) Move Disk N from frm -> to moveDisks(N-1,aux,to,frm) } 3.Return
6
N=1 Move Disk N from frm (A) -> to (C)
A B C N=1 Move Disk N from frm (A) -> to (C)
7
N=1 Move Disk N from frm (A) -> to (C)
A B C N=1 Move Disk N from frm (A) -> to (C)
8
กรณีเมื่อมีจานเดียว ( N = 2 )
1 2 A B C N=2 moveDisks(2,A,C,B)
9
กรณีเมื่อมีจานเดียว ( N = 2 )
moveDisks(N,frm,to,aux) moveDisks(N-1,frm,aux,to) Move Disk N from frm -> to moveDisks(N-1,aux,to,frm) moveDisks(1,A,B,C) *Move Disk 1 from A -> B moveDisks(2,A,C,B) moveDisks(1,A,B,C) *Move Disk 2 from A -> C moveDisks(1,B,C,A) moveDisks(1,B,C,A) *Move Disk 1 from B -> C
10
กรณีเมื่อมีจานเดียว ( N = 2 )
ผลของโปรแกรม 1. Move Disk 1 from A -> B 2. Move Disk 2 from A -> C 3. Move Disk 1 from B -> C
11
N=1 1. Move Disk 1 from A -> B
2 1 A B C N=1 Move Disk 1 from A -> B
12
N=1 2. Move Disk 2 from A -> C
A B C N=1 Move Disk 2 from A -> C
13
N=1 3. Move Disk 1 from B -> C
2 A B C N=1 Move Disk 1 from B -> C
14
กรณีเมื่อมีจานเดียว ( N = 3 )
1 2 3 A B C
15
กรณีเมื่อมีจานเดียว ( N = 3 )
moveDisks(3,A,C,B) moveDisks(2,A,B,C) *Move Disk 2 from A -> C moveDisks(2,B,C,A)
16
กรณีเมื่อมีจานเดียว ( N = 3 )
moveDisks(2,A,C,B) moveDisks(1,A,B,C) *Move Disk 2 from A -> C moveDisks(1,B,C,A) moveDisks(3,A,C,B) moveDisks(2,A,B,C) *Move Disk 3 from A -> C moveDisks(2,B,C,A) moveDisks(2,B,C,A) moveDisks(1,A,B,C) *Move Disk 2 from A -> C moveDisks(1,B,C,A)
17
กรณีเมื่อมีจานเดียว ( N = 3 )
moveDisks(1,A,C,B) *Move Disk 1 from A -> C moveDisks(2,A,B,C) moveDisks(1,A,C,B) *Move Disk 2 from A -> B moveDisks(1,C,B,A) moveDisks(1,C,B,A) *Move Disk 1 from C -> B moveDisks(3,A,C,B) moveDisks(2,A,B,C) *Move Disk 3 from A -> C moveDisks(2,B,C,A) moveDisks(1,B,A,C) *Move Disk 1 from B -> A moveDisks(2,B,C,A) moveDisks(1,B,A,C) *Move Disk 2 from B -> C moveDisks(1,A,C,B) moveDisks(1,A,C,B) *Move Disk 1 from A -> C
18
กรณีเมื่อมีจานเดียว ( N = 3 )
ผลของโปรแกรม 1. Move Disk 1 from A -> C 2. Move Disk 2 from A -> B 3. Move Disk 1 from C -> B 4. Move Disk 3 from A -> C 5. Move Disk 1 from B -> A 6. Move Disk 2 from B -> C 7. Move Disk 1 from A -> C
19
A B C 2 3 1 กรณีเมื่อมีจานเดียว ( N = 3 )
1. Move Disk 1 from A -> C
20
A B C 3 2 1 กรณีเมื่อมีจานเดียว ( N = 3 )
2. Move Disk 2 from A -> B
21
A B C 1 3 2 กรณีเมื่อมีจานเดียว ( N = 3 )
3. Move Disk 1 from C -> B
22
A B C 1 2 3 กรณีเมื่อมีจานเดียว ( N = 3 )
4. Move Disk 3 from A -> C
23
A B C 1 2 3 กรณีเมื่อมีจานเดียว ( N = 3 )
5. Move Disk 1 from B -> A
24
A B C 2 1 3 กรณีเมื่อมีจานเดียว ( N = 3 )
6. Move Disk 2 from B -> C
25
A B C 1 2 3 กรณีเมื่อมีจานเดียว ( N = 3 )
7. Move Disk 1 from A -> C
26
วิเคราะห์จำนวนครั้ง n=1 จำนวน 1 ครั้ง n=2 จำนวน 1 ครั้ง n=3 จำนวน 1 ครั้ง n=N จำนวน 1 ครั้ง 2N -1
27
PROGRAME
28
Thank for watch our presentation
THE END Thank for watch our presentation
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.