数独-PSP表格
Github项目地址
https://github.com/kkxkkx/Sudoku_self
PSP表格
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 60 | 60 |
Development | 开发 | 870 | 1710 |
· Analysis | · 需求分析 (包括学习新技术) | 120 | 120 |
· Design Spec | · 生成设计文档 | 120 | 160 |
· Design Review | · 设计复审 (和同事审核设计文档) | 60 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 120 | 60 |
· 具体设计 | 60 | 120 | |
· Coding | · 具体编码 | 240 | 500 |
· Code Review | · 代码复审 | 30 | 120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 600 |
Reporting | 报告 | 150 | 240 |
· Test Report | · 测试报告 | 60 | 120 |
· Size Measurement | · 计算工作量 | 30 | 30 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 60 | 90 |
合计 | 1080 |
解题思路
在最开始拿到题目的时候,想起上学期算法课程学过的回溯算法,决定用会回溯算法进行实现,所以翻看了算法设计的课本和ppt,对回溯算法重新进行了学习。在生成n个不同局面和求解给定数独的思路大致一致,但有在细节处的处理有些不同。首先是生成n个不同的局面,按行进行循环,有一个二维数组保存每个位置的可能数字,从可能数字中随机选一个放在该位置,若该位置找不到可能的位置,则回到上一个,修改上一个位置的解。不断进行回溯,直到所有的位置都合法。若是对给定局面进行求解,则将空白位置用数组记录下来,只对空白位置进行回溯即可。