04 2018 档案

摘要:网址:https://github.com/InZei/ 阅读全文
posted @ 2018-04-13 22:31 Prisonerr 阅读(200) 评论(0) 推荐(0) 编辑
摘要:首先解释一下各自函数的用处: 1.main():本函数包括了所有的执行进程,是整个程序的枢纽和轴线。 2.dfs():dfs对一个序列进行全排列,并借助mov和makesudo进行生成。 2.num():对argv[2]进行转换。 3.makemov():是对典型数独的4~6,7~9行进行交换。 4 阅读全文
posted @ 2018-04-13 10:42 Prisonerr 阅读(125) 评论(0) 推荐(0) 编辑
摘要:这是本次项目花费时间表格,总体来说效率不高,但是我希望能够通过今后的努力,百尺竿头更进一步。 阅读全文
posted @ 2018-04-12 22:29 Prisonerr 阅读(98) 评论(0) 推荐(0) 编辑
摘要:关键代码展示: //判断该数字在当前数独是否符合要求 int judge(int num, int ple){ int x = ple / 9; //x表示数字的纵坐标 int y = ple % 9; //y表示数字的横坐标 int qulx = x / 3; int quey = y / 3; 阅读全文
posted @ 2018-04-12 22:25 Prisonerr 阅读(161) 评论(0) 推荐(0) 编辑
摘要:在运用输入输出I/O函数中,最开始是运用的fprintf进行写入,称为程序1.0版本,在进行性能诊断的时候,我发现在生成1000000个数独终局过程竟然总共耗费了5分钟!而用VS诊断中,光fprintf函数就耗费了99.9%的时间,所以我决定加以改进。 表一 输出字符串100万次的时间(单位:us) 阅读全文
posted @ 2018-04-12 22:25 Prisonerr 阅读(105) 评论(0) 推荐(0) 编辑
摘要:对于指令的判断: 首先整个项目的指令集总共两个:sudoku.exe -c xxx Sudoku.exe -s xxx 那么判断指令是否正确也就变得简单了,首先argc一定为三,只要argc!=3那么指令一定不符合要求,其次,-c代表得到要求个数的输入终局,如果其后面的数字小于0,那么肯定是错的,而 阅读全文
posted @ 2018-04-12 22:24 Prisonerr 阅读(144) 评论(0) 推荐(0) 编辑
摘要:argc,*argv[]的用法和含义: main函数是可以带参数的,不过这个参数可以认为是它的形式参数 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,c语言main函数的两个参数可写为: main(int argc,char *argv[]) 而其中argc表 阅读全文
posted @ 2018-04-12 22:23 Prisonerr 阅读(1314) 评论(0) 推荐(0) 编辑
摘要:求解数独: 首先了解数独规则:9*9网格,同时分成9个九宫格,有固定数字,而我们的任务是将剩余无数字部分填满,达到每一行,每一列,每一个九宫格都没有相同数字的要求。 而如何用计算机进行求解呢?计算机的深度优先搜索(dfs)可以解决这个问题,搜索的时间复杂度规模十分的大,所以在不知道如何进行优化的时候 阅读全文
posted @ 2018-04-12 22:17 Prisonerr 阅读(321) 评论(0) 推荐(0) 编辑
摘要:解题思路描述: 数独游戏,对于我们并不陌生,在意林和读者期刊的尾页不时会有刊登,所以规则是了解的:9*9网格,同时分成9个九宫格,有固定数字,而我们的任务是将剩余无数字部分填满,达到每一行,每一列,每一个九宫格都没有相同数字的要求。 首先第一个任务是生成数独终局:解决的方法有两种。 第一种方法:在排 阅读全文
posted @ 2018-04-12 22:14 Prisonerr 阅读(1656) 评论(0) 推荐(0) 编辑
摘要:这是开始项目时对自己计划的要求: 阅读全文
posted @ 2018-04-12 22:12 Prisonerr 阅读(99) 评论(0) 推荐(0) 编辑