ตัวอย่างชวา - หอคอยแห่งฮานอยอัลกอริทึม
หอคอยแห่งฮานอย (ยังเป็นที่รู้จักหอคอยฮานอย) ปัญหาเกิดจากตำนานโบราณของอินเดียของเล่นเพื่อการศึกษา เวลาที่พระพรหมสร้างโลกที่จะทำสามเสาหลักเพชรเสาจากด้านล่างขึ้นในคำสั่งของกองขนาดที่มีแผ่นทองคำ 64 คำสั่งที่ดีพรหมพราหมณ์ไปยังดิสก์จากด้านล่างในการสั่งซื้อขนาดตำแหน่งบนเสาอื่น ๆ และให้ดิสก์ไม่สามารถซูมในแผ่นดิสก์ขนาดเล็กคุณสามารถย้ายแผ่นดิสก์หนึ่งระหว่างสามเสาหลัก
ต่อมานี้พัฒนาเป็นตำนานหอคอยฮานอยเกมส์เล่นดังนี้
- 1. มีสามเสา A, B, C. มี แท่งมีจำนวนของอาหาร
- 2. การย้ายแต่ละจานเพียงกองเล็ก ๆ ในด้านบนใหญ่
- 3. อาหารทั้งหมดจากการย้ายคันโยกทุกเสาซี
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงขั้นตอนวิธีการ HANOR:
/* author by w3cschool.cc MainClass.java */ public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } } }
รหัสดังกล่าวจะดำเนินการส่งออกเป็น:
Disk 1 from A to C Disk 2 from A to B Disk 1 from C to B Disk 3 from A to C Disk 1 from B to A Disk 2 from B to C Disk 1 from A to C