clojure - 制作数独求解器
问题描述
我正在尝试制作一个数独求解程序,它获取一个向量向量作为输入,其中向量内的每个向量都是数独的一行,其中每个“0”是数独中的一个空单元格。
到现在为止,我已经找到了一个带有“0”的单元格可以获得的所有可能的数字。
所以问题是,在找到哪个单元格只有一个可能的解决方案之后,尽管 Clojure 的不变性,我如何将那个唯一的解决方案放在它的位置上?
程序需要返回相同的向量向量,其中每个“0”都替换为满足要求的数字。
解决方案
如果您有向量向量,则可以使用assoc-in
例如设置单元格值
(def cells [[1 3 0]
[4 2 1]
[6 3 0]])
(defn set-cell-value [board row col value]
(assoc-in board [row col] value))
(set-cell-value cells 0 2 2)
推荐阅读
- split - PowerBI - 拆分表(规范化)
- mysql - SQL Join ON 子句对别名的有效引用
- typescript - Inversify 无法注入具有依赖项的类
- flutter - 错误:无法解析 'package:rxdart/rxdart.dart' 中的包 'rxdart'
- javascript - 在过渡期间更新 CSS 属性,在所有浏览器中都很流畅,但在 Safari 中却非常有问题?
- python - 使用 Apache spark 和 PySpark 在命令提示符中运行基本命令
- python-3.x - 为什么这个列表理解的输出不同?
- matlab - 如何成功地将 .TIFF 图像加载到 MATLAB 中?
- javascript - 我在 for 循环中获得相同的对象以进行角度修改
- vba - Documents.Open FIleName:=StrIssueNext (defined) 生成 Bad File Name 错误