Clojure 制作数独解算器
我试图制作一个数独解算程序,它得到一个向量向量作为输入,向量中的每个向量都是数独的一行,其中每个“0”都是数独中的一个空单元 到目前为止,我已经找到了一个带有“0”的单元格可以得到的所有可能的数字 所以问题是,在找到哪个细胞只有一个可能的解决方案后,我将如何在Clojure不变性的情况下将唯一的解决方案放在它的位置上Clojure 制作数独解算器,clojure,Clojure,我试图制作一个数独解算程序,它得到一个向量向量作为输入,向量中的每个向量都是数独的一行,其中每个“0”都是数独中的一个空单元 到目前为止,我已经找到了一个带有“0”的单元格可以得到的所有可能的数字 所以问题是,在找到哪个细胞只有一个可能的解决方案后,我将如何在Clojure不变性的情况下将唯一的解决方案放在它的位置上 程序需要返回相同的向量向量,其中每个“0”都被满足要求的数字替换 如果您需要状态,请将其放入原子中。它是一种可变引用类型,保存不变的值。如果您有一个向量向量,您可以使用中的asso
程序需要返回相同的向量向量,其中每个“0”都被满足要求的数字替换 如果您需要状态,请将其放入原子中。
它是一种可变引用类型,保存不变的值。如果您有一个向量向量,您可以使用
中的assoc设置单元格值,例如
(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)
我基本上需要把那个唯一的值放在它在原始矩阵中的位置上,我一直在考虑的一件事是制作一个acumulator矩阵并把元素放在那里,但是如果它是空的,你不能把它们放在相应的索引中,我一定会尝试这个