码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-12-28 23:09:20      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:软件工程   git   关于   语言   地址   fas   结果   个人   解决   

  任务:实现一个能过生成数独终局并且能求解数独问题的控制台程序。

  代码地址: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种。数独终局数量问题解决。

  现在考虑如何实现整体代码:

  目前考虑主函数中三个函数  一个是模板生成函数,生成第一排的排列,第二个是数独生成函数,根据第一排的结果生成数独,第三个是问题生成函数,根据输入的数独生成数独终局问题,第四个是解决函数,解决数独问题 。

  

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

标签:软件工程   git   关于   语言   地址   fas   结果   个人   解决   

原文地址:https://www.cnblogs.com/fasl/p/12103390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!