十五数码问题 用A*算法,自己编的有点水,需要跑十分钟才行。扩展open表时,新数据放在表前面(接近深度优先),可以减少扩展节点数量。
C:\Users\admin\Desktop\1>python DigitalCode.py
请输入数据11 9 4 15 1 3 16 12 7 5 8 6 13 2 10 14
请输入维度:4
0 : [[11, 9, 4, 15], [1, 3, 16, 12], [7, 5, 8, 6], [13, 2, 10, 14]]
1 : [[11, 9, 4, 15], [1, 3, 12, 16], [7, 5, 8, 6], [13, 2, 10, 14]]
2 : [[11, 9, 4, 16], [1, 3, 12, 15], [7, 5, 8, 6], [13, 2, 10, 14]]
3 : [[11, 9, 16, 4], [1, 3, 12, 15], [7, 5, 8, 6], [13, 2, 10, 14]]
4 : [[11, 16, 9, 4], [1, 3, 12, 15], [7, 5, 8, 6], [13, 2, 10, 14]]
5 : [[16, 11, 9, 4], [1, 3, 12, 15], [7, 5, 8, 6], [13, 2, 10, 14]]
6 : [[1, 11, 9, 4], [16, 3, 12, 15], [7, 5, 8, 6], [13, 2, 10, 14]]
7 : [[1, 11, 9, 4], [7, 3, 12, 15], [16, 5, 8, 6], [13, 2, 10, 14]]
8 : [[1, 11, 9, 4], [7, 3, 12, 15], [5, 16, 8, 6], [13, 2, 10, 14]]
9 : [[1, 11, 9, 4], [7, 3, 12, 15], [5, 8, 16, 6], [13, 2, 10, 14]]
10 : [[1, 11, 9, 4], [7, 3, 16, 15], [5, 8, 12, 6], [13, 2, 10, 14]]
11 : [[1, 11, 16, 4], [7, 3, 9, 15], [5, 8, 12, 6], [13, 2, 10, 14]]
12 : [[1, 16, 11, 4], [7, 3, 9, 15], [5, 8, 12, 6], [13, 2, 10, 14]]
13 : [[1, 3, 11, 4], [7, 16, 9, 15], [5, 8, 12, 6], [13, 2, 10, 14]]
14 : [[1, 3, 11, 4], [7, 8, 9, 15], [5, 16, 12, 6], [13, 2, 10, 14]]
15 : [[1, 3, 11, 4], [7, 8, 9, 15], [5, 2, 12, 6], [13, 16, 10, 14]]
16 : [[1, 3, 11, 4], [7, 8, 9, 15], [5, 2, 12, 6], [13, 10, 16, 14]]
17 : [[1, 3, 11, 4], [7, 8, 9, 15], [5, 2, 16, 6], [13, 10, 12, 14]]
18 : [[1, 3, 11, 4], [7, 8, 16, 15], [5, 2, 9, 6], [13, 1