首页 > 解决方案 > 制作数独求解器

问题描述

我正在尝试制作一个数独求解程序,它获取一个向量向量作为输入,其中向量内的每个向量都是数独的一行,其中每个“0”是数独中的一个空单元格。

到现在为止,我已经找到了一个带有“0”的单元格可以获得的所有可能的数字。

所以问题是,在找到哪个单元格只有一个可能的解决方案之后,尽管 Clojure 的不变性,我如何将那个唯一的解决方案放在它的位置上?

程序需要返回相同的向量向量,其中每个“0”都替换为满足要求的数字。

标签: clojure

解决方案


如果您有向量向量,则可以使用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)

推荐阅读