• 补一下博客


     其实这是前几天的工作了,一直没有写博客,现在来补一下。

      上一次是把数独的检查工作做了,但是数独生成方法一直没有好的想法,也看了几篇博客,但是都不大好,有点的是不好解决重复的问题,有的是不好生成百万数量规模的生成方法。但是前几天再看时,第一篇搜到的博客就是针对百万数据规模的数独生成方法,貌似与我们做的是同一个项目。看了之后很是受用。不过他提供的部分代码不是很懂。于是开始自己写。思路是按那篇博客来的。

      先把思路说一下,发现这样一个规律,只要把第一行每个元素按照0, 3, 6, 7, 4, 1, 2, 5, 8偏移,就能得到一个完成的数独终局。那么现在主要问题就是变成了如何生成一个1-9的排列。不过做这个工作的时候我走入了一个误区老是去考虑如何用随机数生成的方法去解决问题,随机数生成的方法固然能得到一个排列,去不好保证重复的问题,可能之前有一直在做“生成一百万个不重复的随机数这个问题。”

      后面的想法是递归,但是C#如何进行递归调用感觉不是很熟悉,用C以及C++感觉更好写递归。网上看了几个别人用递归写的程序,感觉都是递归进行操作,例如输出什么的。但是我一开始的想法是建立一个递归函数,函数的功能是得到一个1-9的排列。

      我并没有直接在原来的程序上改,而是新建了一个项目,就是把这个函数实现,把1-9的所有排列都输出来。大部分时间可能都花在对C#语言的熟悉过程中了。费了一点功夫,总算是把1-9的所有排列都输出来了,然后进行移植。

      原来的函数时void类型的,我直接改成了int【,】类型,然后将原来输出的地方改成了return ans;但是程序马上就开始报错了。大概是“不是每次都有返回值什么的”。刚开始还不太理解,现在想来真是可笑,又递归又有返回值,本来就是相互冲突的。递归函数一般只在主函数调用一次,但是他却有9!个输出,将其直接变成返回值,根本就是笑话嘛!

       我先写到这吧,现在有点事,晚上在更!

  • 相关阅读:
    php 经验之谈
    3)nginx的启动与停止、重启,linux配置对外端口
    git 的使用
    mysql基本定义--数据类型
    Web安全XSS
    SQL优化 csdn
    数据库隔离级别
    Web前段优化,提高加载速度 css
    jquery的height()和javascript的height总结,js获取屏幕高度
    highcharts笔记 highcharts学习 highcharts用法
  • 原文地址:https://www.cnblogs.com/zh1903/p/8746314.html
Copyright © 2020-2023  润新知