图解回溯算法
backtracing
1.骑士巡回问题
回溯是一种算法范例,尝试不同的解决方案,直到找到一个「有效」的解决方案。通常使用回溯解决的问题具有以下共同特性。这些问题只能通过尝试每种可能的配置来解决,并且每种配置只尝试一次。对于这些问题,一个简单的解决方案是尝试所有配置,并输出符合给定问题约束的配置。回溯是一种渐进式的工作方式,是对原始解决方案的优化,所有可能的配置都会生成并尝试。
例如,考虑以下骑士巡回问题
描述
给出一个N✖️N的棋盘,骑士被放在一块空棋盘的第一块上。按照象棋的规则,骑士的移动必须准确地访问每个方块一次。打印每个单元格的访问顺序。
例子
Input :
N = 8
Output:
0 59 38 33 30 17 8 63
37 34 31 60 9 62 29 16
58 1 36 39 32 27 18 7
35 48 41 26 61 10 15 28
42 57 2 49 40 23 6 19
47 50 45 54 25 20 11 14
56 43 52 3 22 13 24 5
51 46 55 44 53 4 21 12
在一个8✖️8的棋盘上,骑士所走的点如下:

Last updated