易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

求解数独 改自超级用户 侵删   [复制链接]

    2023-04-13 14:32:49
    高级教程源码
    易语言资源网
    809 次浏览
    来源链接

求解使用状态压缩+回溯。

状态压缩

  • 使用 bitset<9> 来压缩存储每一行、每一列、每一个 3x3 宫格中 1-9 是否出现
  • 这样每一个格子就可以计算出所有不能填的数字,然后得到所有能填的数字 getPossibleStatus()
  • 填入数字和回溯时,只需要更新存储信息
  • 每个格子在使用时,会根据存储信息重新计算能填的数字

回溯

  • 每次都使用 getNext() 选择能填的数字最少的格子开始填,这样填错的概率最小,回溯次数也会变少
  • 使用 fillNum() 在填入和回溯时负责更新存储信息
  • 一旦全部填写成功,一路返回 true ,结束递归



原贴
易语言数独,当前论坛最完美的数独哦!!(为作业No.94的源码)
https://bbs.125.la/forum.php?mod=viewthread&tid=14191541



点我下载 (已有 34 次下载)

引用模块


源码文件名 模块文件名
数独主程序.e
Win10皮肤模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
WIN10.e 系统核心支持库 5.3 d09f2340818511d396f6aaf844c7e325
数独主程序.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
高级表格支持库 2.11 0B4337DA651B4b619ACF61334A7E8B47


[错误报告]   上一篇:播放器可以下载歌曲...     下一篇:桌面小插件V2.0