Backtracking Algorithm Visualization
八皇后 · 回溯算法可视化
在 8 × 8 棋盘上放置八个互不攻击的皇后。左侧 FBASIC 程序由解释器逐条执行,右侧读取真实变量和数组,观察“尝试 → 检查 → 放置 → 回溯”的全过程。
回溯算法 · FBASIC
READY执行说明
8 × 8 棋盘
READY
尝试位置:0
冲突次数:0
回溯次数:0
执行步数:0
当前行:—
已找到:0 / 92 解
已放置尝试位置冲突皇后撤销位置
尚未发现解
为什么要回溯?
每行只放一个皇后,用数组 Q(R) 记录列号。变量 R、C、J 表示当前行、尝试列和被检查的行。同列或行差等于列差的绝对值时发生攻击。
找到安全位置后搜索下一行;后续搜索结束时撤销本行皇后,再尝试下一列。走完八行就得到一个解。八皇后共有 92 个解(旋转、镜像后的排列分别计数),其中有 12 个基本解。
FBASIC 使用 1–8 的行、列编号,Q(R)=0 表示未放置。GOTO 实现迭代回溯;快速求解仍逐条执行同一程序,只跳过动画等待。
评论与讨论
评论保存在 GitHub Issues,登录 GitHub 后即可参与讨论。
评论暂未开放,站点管理员尚未配置 GitHub OAuth。
前往 GitHub Issues