On this page
article
例子
本文介绍一个例子,它叫做 数独游戏(Sudoku)。可以用数学规划的方法来求解。以这个例子为背景,我们讲一下如何把模型进行封装,把它作为软件包、网络服务,以及软件产品。
数独游戏
我们有一张卡片,它包含 9*9=81 个格子,如下图所示。

卡片上有一些已知的数字,数字的范围是 1-9。游戏的任务是,把数字 1-9 填入下图的空格子中。填入的数字需要满足如下三个条件。
- 每行包含数字
1-9; - 每列包含数字
1-9; - 每个 块 (Block) 包含数字
1-9。
解释一下块的概念。每一个块是粗线框包含的 3*3 格子。整个表格共有 9 个块,分为三行和三列。为了方便描述,我们用记号 Block(i,j) 表示位置在第 i 行第 j 列的块。
Block(1,1)

Block(1,2)

Block(1,3)

依此类推。
Last updated 03 Nov 2025, 09:34 +0800 .