个人项目——生成数独并解数独【小结】

整个项目完成啦~首先在此特别感谢某位大佬从代码到github使用的极耐心各种帮助2333

重新贴上github地址:

https://github.com/Shannon2016/homework.git

然后附上PSP表格

 

PSP

Personal Software Process
Stages

预估耗时(分钟)

实际耗时(分钟)
Planning计划  
  Estimate  估计任务用时60  40
Development开发  
  Analysis  需求分析(包括学习新技术)180 240
  Design Spec  生成设计文档60 120
  Design Review  设计复审10 10
  Coding Standard  代码规范10 10
  Design  具体设计60 120
  Coding  具体编码4200 3600
  Code Review  代码复审240 240
  Test  测试180 180
Reporting 报告  
  Test Report  测试报告180 180
  Size Measurement  计算工作量60 60
  Postmortem & Process Improvement Plan  总结并题出改进计划60 60
Total合计5300 4860

【整个项目的实现过程】

整个项目分为两部分,生成数独和解数独。生成数独只用了一个函数。解数独用了两个函数,一个用于回溯,另一个用于判别当前位置放置某个数字是否可行。由于对cmd不是很熟悉也不太会用c语言进行操作,故此请教大佬……大佬在github上扒了一个开源代码,然后我也就悄悄地讨要了一波2333这样就可以直接获取命令行指令啦。

整个项目做下来感觉最难的不是实现生成或解数独的功能,而是实现输入输出功能和使用github(真心地觉得github太反人类了hhhhh)。

这里附上一个github上传项目教程的链接 https://www.cnblogs.com/fengxiongZz/p/6477456.html

 

【性能分析(其实真的不太会写)】

怎么说呢……生成数独的部分,生成1e6组终局大约在15秒左右。这里特别感谢大佬教会我用putc(),并让我理解了printf()为什么在输出的时候会更慢。

解数独部分,本地运行解1000组数独约3s+,使用VS性能分析如下

可见解数独部分耗时最长除了DFS回溯以外,用于判别某一位置放某个数是否可行也花费了很长的时间。

 【遗留的问题】(谁能告诉我要怎么破……QAQAQ)

1. 普通的DFS回溯去解数独确实很慢,每一个位置都要判定横向、纵向、小九宫格内是否都可行,但又实在想不出来什么好办法可以进行优化。

2. 用git上传项目文件为什么会有的文件夹检测不到?(如下图)当时用git上传文件时只有四个选中的文件(夹)能顺利上传到github,另外两个文件夹却怎么也上传不了,最后直接在网页上upload file才算终于上传结束……

转载于:https://www.cnblogs.com/snnnn/p/8808381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值