2012-10-19 80 views
-2

Sudoku ex1不能使/配置困難功能

在解決數獨我可以刪除可能性的數字(1)和(2)從細胞中d [1,2]和d [2,2]。因爲(8)和(9)僅在這些細胞中是可能的,所以那些細胞是(8和9)或(9和8)。這意味着數字(1)和(2)位於D塊的第3行。這就是爲什麼我可以消除來自單元格A [3,3]的數字(1)的可能性。

我一直在配置一個函數,在過去的40小時內做這件事,但無法管理。有沒有人能夠使這個功能檢測到這種類型的智力問題(消除一些可能性,因爲其他n個可能性只能存在於n個單元中,在我們的例子中,2個數字8和9可以存在於2個單元D [ 1,2]和D [2,2])。

請不要指教關於數獨的其他功能;我已經完成了它們,唯一不能編程的算法就是這個。順便說一句,你可以使用r [i](包含行號爲i的可能性的字符串),c [i]爲列,b [i]爲塊(例如:b [4](在此圖像塊A )= 1,2,3,4,5,6,7,因爲已經定義了8和9)。謝謝

+0

向我們展示你做了什麼。 – trailmax

+0

我甚至想不出如何做到這一點。如果你可以暗示如何使這個功能成爲可能,請使用 –

+0

請重做問題。在閱讀了3次之後,我仍然不明白你想要做什麼,爲什麼這麼困難。 – trailmax

回答

1

我真的沒有看到問題,你基本上已經解決了你的問題。 一般而言,您應該執行以下操作:

步驟1:遍歷一個塊的所有9個單元並檢查(1)是否僅包含在兩個單元中。

步驟2:如果沒有,請嘗試下一個數字。如果是,則循環遍歷所有9個單元並檢查(2)是否也在這兩個單元中,但不在剩餘的其他任何其他單元中。步驟3:如果不是,請檢查下一個數字。如果是的話,除了你發現的兩個數字之外,刪除兩個單元的其他可能性,你基本上完成了。步驟4:如果找不到(1)(或在步驟2的「不」部分中選擇的任何較大數字)的匹配號碼,則從第1步開始,但嘗試下一個數字,除非您已經在8,那麼你可以停下來。

最後,你可以動態的3個數字擴展同樣的模式在3個單元,4號......

+0

菲爾很好,非常感謝。 –

+0

沒問題,只能指出來。當然,您可以使用相同的算法,不僅適用於單元格,也適用於任何行或列。 – phil13131