• 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.性能改进

  • 相关阅读:
    day 01
    day14
    day12
    day13
    day11
    day9
    day10
    day08
    day07
    day06
  • 原文地址:https://www.cnblogs.com/cxrblog/p/12594114.html
Copyright © 2020-2023  润新知