當前位置:首頁 » 編程軟體 » 編程解決數獨

編程解決數獨

發布時間: 2023-03-11 13:56:29

Ⅰ 如何編程快速出數獨題目

這個網上有很多演算法的 基本思路就是:找到每個空格的可能數字,從可能數字數最少的空格開始填寫,遇到錯誤就返回,直到填完所有空格
我也用網上的演算法做了matlab和c的數獨求解器 可以用

Ⅱ 誰能告訴我數獨游戲的編程思維啊

一、解數獨
1、標記
2、利用各種方法減少標記數量,例如顯性數對刪減法、隱形唯一數法、隱形數對法、區域刪減法、區塊刪減法、三四鏈數刪減法等等
3、填充,利用唯一值法,如果那個標記中只有一個可填了,這就是結果了。
4、假設法,如果各種方法(至少你知道的)都用了還是沒有唯一數,那隻能假設了,按一定順序某個單元格標記中假設一個就是要填充的數,然後重復上面的步驟,如果得到無解(就是出現某個單元格的沒有可填的數),那就退回,換一個數繼續。(一般這個過程用遞歸完成)
二、如何生成題目
會解數獨後,生成就不是問題了,我的方法是分為兩步首先隨機填充1-9到第一行,然後用上訴方法產生一個解。再次,隨機一個一個數刪除,每刪除一個數重復上訴方法,看看是否是唯一解,如果是繼續刪除(不是就恢復,刪其它的),直到達到一定目的為止。這樣就產生一個數獨題目。

c語言 編程 數獨

當年我們做大程的時候本來也想做數獨來著,後來時間不夠沒做成.不知道專業人士怎麼編的,只能提供一點當時的思路給你,
1.9*9個格子對應一個數組A,數組的第一個值從0到9表示其中填的數字,0就是不填,另一個值表示它在桌面上的位置就是坐標
2.需要10張圖片,空白和9個數字
3.通過對滑鼠點擊的反應改變格子數組A的值,且將相應圖片覆蓋在相應坐標上
4.事先輸入若干組數組A的值(每組81個數),作為題庫
5.進行游戲時隨機抽取題庫中的一組,再隨機抽取若干格子顯示出來,其他留白.
6.填完後用三個循環判斷下每行每列每塊是否有相同的數字,沒有則通過.
具體編按鈕、放圖、滑鼠點擊響應等各種問題查一下書,有很多書上有很多教的這種一小段一小段的程序源代碼,直接抄下就行了。
加油^^

Ⅳ 基於SAT的數獨游戲求解程序,求C語言代碼

用0代表要填的數

#include <stdio.h>

#include <stdlib.h>

#define SIZE 9

#define get_low_bit(x) ((~x&(x-1))+1)

struct{

int left;

char num;

char try;

}board[SIZE][SIZE];

int bit2num(int bit)

{

switch(bit){

case 16:

case 256:

return 9;

基礎解法

排除法(摒除法)

摒除法:用數字去找單元內唯一可填空格,稱為摒除法,數字可填唯一空格稱為排除法 (Hidden Single)。

根據不同的作用范圍,摒余解可分為下述三種:

數字可填唯一空格在「宮」單元稱為宮排除(Hidden Single in Box),也稱宮摒除法。

數字可填唯一空格在「行」單元稱為行排除法(Hidden Single in Row),也稱行摒除法。

Ⅳ 有沒有好的演算法編程解決數獨的正確答案

有啊,而且各種語言基本都有。
其中比較經典的舞蹈鏈演算法對常見的標准數獨來說簡直就是秒解!甚至每秒解幾千個幾萬個。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:741
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1005
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:712
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:874
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:773
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1120
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:346
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:224
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:910
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:869