小编nbi*_*itd的帖子

在Erlang中回溯

首先抱歉我的英语.

我想在Erlang中使用回溯算法.它可以作为解决部分填充的sudokus的猜测.9x9数独存储为81个元素的列表,其中每个元素存储可以进入该单元格的可能数字.

对于4x4数独,我的初始解决方案如下所示:[[1],[3],[2],[4],[4],[2],[3],[1],[2,3], [4],[1],[2,3],[2,3],[1],[4],[2,3]]

这个数独有2个解决方案.我必须写出他们两个.在达到初始解决方案之后,我需要实现一个回溯算法,但我不知道如何制作它.

我的想法是将固定元素写入一个名为fixedlist的新列表,该列表将多个解决方案单元格更改为[].

对于上面提到的例子,固定列表如下所示:[[1],[3],[2],[4],[4],[2],[3],[1],[],[4] ,[1],[],[],[1],[4],[]]

从这里我有一个"样本",我寻找解决方案列表中不等于1的最小长度,我尝试这个单元格的第一个可能的数量,我把它放到那个固定列表.在这里,我有一个算法来更新单元格并检查它是否仍然是一个可解决的数独.如果没有,我不知道如何退一步并尝试新的.我知道它的伪代码,我可以将它用于命令式语言,但不能用于erlang.(prolog实际上实现了回溯算法,但是erlang没有)

任何的想法?

erlang backtracking

5
推荐指数
1
解决办法
1017
查看次数

如何在C++和???中合法地写::: 在C#?

这些问题是一种游戏,我没有找到适合他们的解决方案.
可以:::用C++ 编写而不使用引号或类似的东西,编译器也会接受它(宏也是禁止的).

C#也是如此,但在C#中,你必须写???.

我认为C++将使用::范围运算符而C#将使用? :,但我不知道它们的答案.

任何的想法?

c# c++ syntax

5
推荐指数
1
解决办法
690
查看次数

标签 统计

backtracking ×1

c# ×1

c++ ×1

erlang ×1

syntax ×1