生成数独终局

Posted xiao-ma-running

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成数独终局相关的知识,希望对你有一定的参考价值。

耽搁了好久今天补一下吧

数独中 1~9 在每一行 每一列还有每个九宫格上只出现一次,每次都随机生成一个新的数独速度太慢,我们可以借用一个生成好的数独当模板。

i

g

h

c

a

b

f

d

e

c

a

b

f

d

e

i

g

h

f

d

e

i

g

h

c

a

b

g

h

i

a

b

c

d

e

f

a

b

c

d

e

f

g

h

i

d

e

f

g

h

i

a

b

c

h

i

g

b

c

a

e

f

d

b

c

a

e

f

d

h

i

g

e

f

d

h

i

g

b

c

a

 

如图可以让1~9 来分别代替这些数字,算上左上方固定的数字共有8!种不同的方法。行和行之间也可以互换共有2!*3!*3!,同理列之间也有这么多。三种情况考虑起来共有约2e8种情况,大于题目所要求数量。

实现代码的思路:分别生成上述的阶乘数,输出时直接索引每个数字对应的值输出即可。(比如生成了1,3,2,5,4,6,8,7,9分别对应a~i,1,3,2,6,5,4,9,8,7分别对应行,输出直接按照所对应的数字输出即可)

以上是关于生成数独终局的主要内容,如果未能解决你的问题,请参考以下文章

个人项目解题思路

个人项目-数独终局生成与解数独

软件工程-个人项目 数独终局的一些想法

代码说明

软件工程数独——需求分析2

性能分析