文件名称:java笔试题算法-dancing-links:Knuth的DancingLinks算法的Java实现。通过示例,包括超快速数独求解器
文件大小:107KB
文件格式:ZIP
更新时间:2024-06-22 20:11:51
系统开源
java笔试题算法概述 是 Donald Knuth 的 Dancing Links 算法的 Java 实现,这是他的算法的快速实现,用于解决精确矩阵覆盖问题。 参见 Knuth 对算法和一些有趣应用的描述。 支持 跳舞链接按原样提供。 如果它坏了,你可以保留两块。 示例用法 一些示例作为主要“dlx”模块的子项目包含在内。 单元测试也包括在内。 示例应用程序对于理解如何设置约束并将它们提供给求解器、如何运行求解器以及解码结果最有用。 以下是其中的一些示例: 数独解算器 精确矩阵覆盖问题的一个经典应用是数独的有效解决方案; 在一台非常老的机器上,这个求解器可以在不到一毫秒的时间内将解决方案暴力破解到最难的求解器。 测试套件中包含大量非常坚硬的数独。 n-皇后 就像它说的那样。 3D 四氨基 这个例子是为了破解给我父母的一个 3D tetramino 风格的积木拼图。 这是 Knuth 在他的论文中描述的四氨基求解器的直接外推。 伍德博士的万花筒拼图 一个圣诞节,我得到了这个俗气但用途广泛的小拼图,而不是手动解决他的拼图,而是决定用这个万花筒求解器来粉碎它们。 这个例子的一个有趣的扩展是
【文件预览】:
dancing-links-master
----.gitignore(115B)
----settings.gradle(85B)
----n-queens()
--------build.gradle(46B)
--------src()
----dlx()
--------.gitignore(13B)
--------src()
----sudoku()
--------build.gradle(46B)
--------src()
----build.gradle(275B)
----tetramino-3d()
--------build.gradle(46B)
--------src()
----LICENSE(34KB)
----README.md(2KB)
----dr-woods-kaleidoscope-solver()
--------build.gradle(46B)
--------src()
----TODO.md(353B)