Monday, 1 October 2007

算法之SudokuPlus(数独,又称九宫)系列 --- 迷题生成篇(2)

三, 九宫知多少

看过了形形色色的九宫题目, 一个疑问飘上心头: 九宫的题目, 总共会有多少呢?

^_^, 就这个问题, 我们先不讨论. 让我们先看看九宫的一个特性吧:

(1)数字间的互换不变性
在一个完整九宫中, 1-9之间的数进行任意互换后的结果仍然是一个九宫题目

如图, 1和2互换位置后仍然是完整九宫
  

(2)行列间的互换不变性
在一个完整九宫中, 大行(或大列)间经过互换或者大行(或大列)中的单行(或单列)间经过互换后的结果仍然是一个九宫题目
注: 行1,2,3(或4,5,6, 或7,8,9)合到一起称为"大行", 列1,2,3(或4,5,6, 或7,8,9)合到一起称为"大列"

如下图: "大行"间互换后
  

如下图: "大行"中的单行互换后
  

根据(1),(2)特性, 一个完整九宫经过变换后可以有多达9!*2!*3!*3!*2!=52,254,720种(至少)的完整九宫出现!!!至于这个数字如何来的, ^_^请自己分析分析看了.

提示: 我们在这里引入"标准九宫"的概念
(1)标准九宫的第一行的数字依次为1,2,3,4,5,6,7,8,9
(2)在标准九宫, 第4行第1列的数字([4,1])比第7行第1列([7,1])的数字小(i.e. [4,1] < [7,1]
(3)在每一大行里的第一列数字里, 行数越小, 数字越小(如: [4,1]<[5,1]<[6,1])


明显的, 标准九宫有N多个噢...具体多少, 自己慢慢算...
而且, 一个完整九宫可以生成NN个九宫题目!
不多讲了, 待续吧, 下面说如何生成随机的九宫题目.

1 comment:

  1. Greetings! Very useful advice within this article! It is the little changes that will make the greatest changes. Thanks for sharing! Check this site out: How To Password Protect Folder In 10 Minutes And Still Look Your Best.

    ReplyDelete