首先感謝我的英語。Erlang回溯
我想在Erlang中使用回溯算法。它可以作爲解決部分填充的數獨問題的猜測。 9×9的數獨被存儲爲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],[我從這裏有一個「樣本」,我尋找解決方案列表中的最低長度,它是不等於1,我嘗試了這個單元格的第一個可能的數字,然後把它放到那個固定列表中。在這裏我有一個算法來更新單元格,並檢查它是否仍然是可以解決的數獨問題。如果不是,我不知道如何退後一步並嘗試新的。 我知道它的僞代碼,我可以將它用於命令式語言,但不能用於erlang。 (prolog實際上實現了回溯算法,但erlang沒有)
任何想法?
你還對此感興趣嗎,我現在一直在做這方面的工作,可以幫助你,如果你願意。你可以在這裏使用我的ID作爲郵件地址在Gmail上。 – rvirding