【软件工程基础】数独(个人项目)-解题思路描述

生成终局
其实我初读题目之时并没有什么思路,唯一想到的暴力搜索显然不能够符合题意。经过上网查阅相关资料以及往届学长的博客,我发现了一个非常厉害的方法——当确定第一行的排列之后,可以将后面的每一行向右平移不同的单位,得到每一列均不重复的组合,此时再考虑每一宫的情况,为保证每一宫内不重复,只要前三行、中三行、后三行之内无重复即可,因此将三行分为一组,需要控制每组内右移单位相差3。

由此总结得到一个全排列+平移变换结合的方式:
1)首先根据题目要求,由我的学号确定第一行的固定数字(1 + 3)% 9 + 1 = 5。
2)在固定一个数字的基础上对剩余8个位置全排列,即8!个
3)每三行分为一组按如下规则做平移操作:

  1. 对第1行平移3、6或6、3个位置得到,即“036”、“063”平移转换
  2. 对第4、5、6行做“147”六种组合方式的平移转换
  3. 对第7、8、9行做“258”六种组合方式的平移转换

求解数独
这里想到的方法就是回溯法,对该处位置进行判断,若判断合法则继续,否则回溯,直到处理完全。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值