我做了一个生成sudokus的算法,但效率非常低.每个难题都需要几分钟才能生成 所以现在我试图以最佳方式再次编写它.但我遇到了一些我需要帮助的问题.
首先我使用第一种方法,但现在我将使用第二种,因为我认为它更有效(我们从有效的拼图开始,保证可以解决).我说第二种方法更好吗?
当我试图生成完全填充的网格时,我遇到了困难.我的算法是:
此技术保证随机网格没有重复的数字.但是,大多数情况下,当我没有违反任何放置规则时,就会发生冲突 - 比如所有候选人都已被移除的空单元格,我需要重新开始.是否有更优雅/有效的方法用数字填充整个网格而不破坏放置规则和仍然是随机数?
谢谢.
你看过现有的算法和/或代码吗?
查看http://www.sudokuwiki.org/Sudoku_Creation_and_Grading.pdf获取算法描述,以及Peter Norvig的文章http://norvig.com/sudoku.html.
Python中有一些实现.到目前为止,我从未见过已发布的C#解决方案.
祝好运!