ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: aoe1981

[原创] 数独解法学习,好像是递归剪枝了

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-1 13:45 | 显示全部楼层
yangyangzhifeng 发表于 2020-3-1 13:00
......6.89....2.........3..5...6..7....8.........3.....2...75...381............4.
这题算多少格?

这是测试的香川大侠的另外一位坛友的软件:

64格递归格_香川.PNG

64格递归格_EH坛友.PNG

这道题还真是厉害。


TA的精华主题

TA的得分主题

发表于 2020-3-1 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这题技巧解,不是很难
17sudoku.png

下面还有一些题,你试试看
  1. ......6.89....2.........3..5...6..7....8.........3.....2...75...381............4.
  2. .1.7.........5.4..........34..3.....2.....5.....1...8.5...2.6...3.....7......4...
  3. .....24..56.......1.........2.16..........85.....3....3......16..8..4......7.....
  4. 3....4..5....2.6........8...6....72.1..8...............2.67...........13...9.....
  5. 7....3..4....2.5........8...5....62.1..8...............2.56...........71...9.....
  6. ..7..51...3.4........8.....2...91...46.....3.............63..4.8.....9...........
  7. ..8..61...3.5........9.....2...14...57.....3.............73..5.9.....4...........
  8. ..7....1.4...8................1.5.7..8....3..9...........93...7.15...2..6........
  9. 2..83......4....9..............64..17....9....5....3.....7..24...1.......3.......
  10. ....631..52...................51...6..3..4....7.....9....2...8...6...4..1........
  11. ...1.7.5.84...................54...16.....2....73.........8..3..51............9..
  12. ...3.7....6.....2.1..5.....3.5...4......8..6...........2...6......4..5......1.3..
  13. .81............2........5..6...4..1.....9..3.2........5..2..7.....6.5....3.7.....
  14. .2.....3......76..4..1......67.3.......4..5........2..8.......1....65..........7.
  15. 5..6..74..3..9....2...........4..2....9.......1.........78.2...4......9.........1
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-3-1 17:27 | 显示全部楼层
先收集点资料后面,再认真研究,毕竟菜鸟还没有搞清楚基本概念

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-1 22:36 | 显示全部楼层
yangyangzhifeng 发表于 2020-3-1 17:04
这题技巧解,不是很难

您可真是研究数独的专业人员,这些题全部是“64格递归格”数独谜题!我逐一进行了测试:

测试.png

附注一下公式:
=TEXT(SUBSTITUTE(MID(OFFSET($A$1,$B$1-1,,,),(ROW()-1)*9+1,9),".","0"),"000000000")
=MID($D1,COLUMN(A1),1)

由于上面公式生成的是文本型数字,我升级了4.0版中的验证公式,以适应文本求和。至于其中产生的大量的0我在附件设计之初就排除了。

截止目前我统计的情况如下表:

递归格数分布.png

红色为还没有找到的“递归格数”的谜题,相当不完整。

我基于这样不完整的资料,又一次冒失地调整所谓“数独谜题难度等级表”如下:

自制数独谜题难度等级表20200301.png

这个等级表对我的算法有点意义,其中大量的您提供的64格递归格的题目,我的附件4.0运行时间在0.02~5秒多之间,十分考验程序效率。如果改变搜索顺序,多数题会颠倒过来,从小到大搜索慢的,从大到小快一些,反之一样。

感谢帮助。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-3-2 00:10 | 显示全部楼层
aoe1981 发表于 2020-3-1 22:36
您可真是研究数独的专业人员,这些题全部是“64格递归格”数独谜题!我逐一进行了测试:

不用递归的题,可以说不计其数,下面是程序随机生成的几题
  1. 6....7..4...6..2...9...........6.....7..14..8..95..67...7..3.4.5...7.8...4.2....9
  2. ..84.3....2..1..8.5....23..1....97....3.2..4..7.3....5.3.6...9...5..8..49...4....
  3. ...5....6..9..6.1.67..9.4..4.....9....2.1...3.9.4...5..1....7..8...2...4..5..7.6.
  4. ....64....5..3......15...8.2...8.....4..968....7....2..7..4.9.58..6...4...2..9...
  5. ..48......5..1...89....4.....7.62..1.2..8..5.4..5.......59.1.2.3....89......5...6
  6. 8....56...6.93..5...5.7...2.4..6...9..2.13......5...813....12....8....9.........8
  7. 7..3..9....89....7.4...8.2......71..1...3...6.2.54.........586...78....9....6....
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-2 09:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yangyangzhifeng 发表于 2020-3-2 00:10
不用递归的题,可以说不计其数,下面是程序随机生成的几题

这样的题像我这样的菜鸟可以人工玩一玩……

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-2 14:37 | 显示全部楼层
yangyangzhifeng 发表于 2020-3-2 00:10
不用递归的题,可以说不计其数,下面是程序随机生成的几题

已校正:

https://www.toutiao.com/i6799492580858921484/

感谢感谢。

TA的精华主题

TA的得分主题

发表于 2020-3-2 15:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
aoe1981 发表于 2020-3-2 14:37
已校正:

https://www.toutiao.com/i6799492580858921484/

我说的魔术格,和你说的递归格是不一样的,魔术格是对人工说的,就是猜对魔术格,你就把题目变成简单题了,程序的话提速主要得益于数据结构和附加区块技巧,附加更复杂的技巧对爆破提速会出现副作用,你说的递归格应该是不能直接出数时,盘面剩下的未填格,如果你增加区块技巧,这个情况会改善很多,另外vb6可以提速到5~20微秒级(纯位运算+特殊数据结构),VBA估计慢5-10倍

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-21 16:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了 高手

TA的精华主题

TA的得分主题

发表于 2024-2-29 18:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
厉害,高深
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-30 16:57 , Processed in 0.045057 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表