Prolog实战:破解数独与八皇后谜题
1. 前置知识与回顾
在深入解决经典谜题之前,我们先回顾一些重要的Prolog基础知识。我们学会了如何使用列表,通过 [Head|Tail] 模式将列表的头部和剩余元素与变量匹配,这种技术可用于递归遍历列表。这些基础操作是解决复杂问题的基石。
此外,书中还给出了Day 2的自我学习任务:
- 查找类 :
- 查找斐波那契数列和阶乘的实现,并理解其工作原理。
- 寻找一个使用Prolog的现实社区,了解他们目前用Prolog解决的问题。
- 实践类 :
- 反转列表元素。
- 找出列表中的最小元素。
- 对列表元素进行排序。
2. 用Prolog解决数独谜题
2.1 数独谜题简介
数独是一种经典的逻辑谜题,常见的是9x9的网格,部分格子已填入数字,部分为空。解题者的任务是填充空格,使得每行、每列和每个3x3的子网格中都包含1 - 9的所有数字。为了简化,我们从4x4的数独开始。
2.2 定义查询形式
我们将查询形式定义为 sudoku(Puzzle, Solution) ,用户可以用列表表示谜题,未知数字用下划线替代,例如:
sudoku([_, _, 2, 3,
_, _, _, _,
_, _, _, _,
3, 4,
超级会员免费看
订阅专栏 解锁全文
93

被折叠的 条评论
为什么被折叠?



