งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Tower of Hanoi.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Tower of Hanoi."— ใบสำเนางานนำเสนอ:

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


ดาวน์โหลด ppt Tower of Hanoi.

งานนำเสนอที่คล้ายกัน


Ads by Google