用程式解九宮格數獨

2021-08-07 17:52:57 字數 935 閱讀 8423

關於給定不完整數獨的解有三種情況:

1,數獨中的數字有衝突,無解。

2,數獨中的數字沒有衝突,並且有且只有乙個解。

3,數獨中的數字沒有衝突,有多個解。

以上三種情況是得到不完整數獨的解,所面對的情況。

1,1 設想乙個不完整的數獨有衝突數字。在進行填數字前,就要判斷出來。然後報告這個數獨有衝突數字。

2,2 設想乙個不完整的數數獨有唯一數獨解,那麼每乙個格中的數字都是唯一確定的。只是我們不知道是具體數值。那麼我們就可以先找出這種唯一確定的數字啦。

3,3設想乙個不完整的數獨有多個解,那麼可以先找出唯一確定的那些數字位置。然後剩下的空方格就有多種情況了。

其中數獨有多少種可能呢? 如果是9x9的格式,則有十的八十一次方中可能數獨(含有衝突項)。

難度第一簡單思路:

所以使用暴力的方式進行一一枚舉,嘗試得到乙個不完整數獨的解,似乎不太可能。於是,猜想應該排除有衝突的數獨。

難度第二簡單思路:

這時,思路有了。當嘗試向數獨中填入乙個數字x(隨便取的乙個變數名)時,要判斷x不與已經存在的數字重複(衝突)。

其中以上的數字重複包括,x所在的行不重複,x所在的列不重複,x所在的小九宮格不重複。然後再嘗試下乙個數字的填入。這種思路可以得到數獨的解,仔細像,好像存在漏洞。填入數字有可能重複。沒有排除已存在項(具體操作有點麻煩,不建議用遞迴實現(記憶體占用過多))。

難度第三簡單思路:

這是由2.2的說明可知,可以優先填入這種唯一確定的數字空格。當然上一次的填入會對當前這次的填入產生影響。這就促進了當前這一次的填入。如此迴圈填入唯一確定數字,就可以將所有的唯一確定值填完了。如果此時數獨已經填完整了,那麼這就是乙個唯一確定的數獨。否則就是乙個多種解數獨。

補充:如果是多解數獨那麼可以參照難度第二簡單思路得到乙個完整數獨。

關於以上思路程式(window版 android版)上傳到了taocode平台上。 或者 

數獨 九宮格 破解

說到數獨,或者九宮格,我想大家一定都不陌生,初中高中看的各種雜誌上都有這種益智遊戲,現在的智慧型手機上也有人寫出了這種遊戲,閒暇時候玩玩也能活躍一下腦子。還有看 模仿遊戲 這部電影裡面,圖靈在選拔隊友的時候好像出的也是數獨的題目。我本來對數獨不是太感興趣,但是乙個偶然的機會看到朋友在玩這個遊戲,就想...

九宮格數獨遊戲

乙個九宮格數獨遊戲,以下是思路和html檔案,由於水平有限沒有使用什麼比較高階的語法,都是一些基礎的東西,所以 比較長。思路是把數獨理解成乙個二維陣列,只要每次遊戲開始隨機生成乙個符合九宮格規則的9 9二維陣列即可。如果不隨機就可以記答案,遊戲就沒意思了 1.1輸入原型陣列,這個陣列要符合規則 1....

數獨遊戲九宮格

初步定義 使用資料結構的方式實現九宮格數獨遊戲 include stdio.h 標準輸入輸出標頭檔案 include conio.h 包含getch 的標頭檔案 include stdlib.h 包含rand 的標頭檔案 include assert.h 包含assert 的標頭檔案 include...