2020年软件工程作业03

软件工程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/
本作业要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
本作业目标 一个人的开发实战数独
作业正文 看本文章
其他参考文献 百度、https://baike.baidu.com/item/回溯法/86074?fr=aladdin

1.我的github地址:https://github.com/xinxinstars/20177637

2.PSP的表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 75
· Estimate · 估计这个任务需要多少时间 2880 2880
Development 开发 120 360
· Analysis · 需求分析 (包括学习新技术) 120 180
· Design Spec · 生成设计文档 40 60
· Design Review · 设计复审 30 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 70
· Design · 具体设计 90 120
· Coding · 具体编码 120 120
· Code Review · 代码复审 30 60
· Test · 测试(自我测试,修改代码,提交修改) 70 90
Reporting 报告 10 10
· Test Report · 测试报告 10 20
· Size Measurement · 计算工作量 20 25
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 10
合计 3690 4110

3.解题思路

数独的主体还是采用回溯法来生成数独棋盘,算法原理来自网上阅读。一开始想到用交叉变换来做,但是发现交叉变化所要做的分治会比较困难,之后网上搜索之后发现,回溯法生成的数独会比较快,也容易产生不同的解

其实找是一件痛苦与快乐并存的事情,很多时候你点进去找到的资料都是不完全的,但还是希望下一次的找到对你有用的,强烈推荐谷歌浏览器,用英文虽然麻烦但是真的比百度好一万倍。

回溯法介绍(摘自CSDN某博客):

回溯法有“通用的解题法”之称。用它可以系统地搜索一个问题的所有解或任一解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向其祖先节点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可结束。这种以深度优先的方式系统地搜索问题的解算法称为回溯法,它适用于解一些组合数较大的问题。

4.设计过程

还在设计中………………

5.代码展示

6.性能改进

猜你喜欢

转载自www.cnblogs.com/cxrblog/p/12594114.html