任务:实现一个能过生成数独终局并且能求解数独问题的控制台程序。
代码地址:https://github.com/MrFasl/1120172188
使用语言:C++
每个数独终局包含9*9个数字,第一个字母为(8+8)%9+1 = 8,即每个数独终局第一个数字均为8
关于数独终局数量的考虑:
数量要求为1<=N<=1000000 = 1e6 在首个数字固定的情况下,第一行可用的组合有8!= 40320种 <1e6。
现在考虑如何扩充数量,由于第一行不能改变,所以考虑456行和789行的行内交换,每个三行全排列个数为3! = 6种 则每个终局由后六行的排序而增加的数量为 6*6种,于是总的组合由6*6*8!>1e6种。数独终局数量问题解决。