Steam 游戲 《Sudoku Universe(數獨宇宙)》——[數獨基本局分析]


日期:2020.02.12

博客期:152

星期三

  

  老師給的任務都做完了,15篇博客也都寫好了,剩下的幾天居然還要每天寫一篇~唉~為難我 PH ,剩下的幾天就把 我的數獨要義分享一下吧!

  1、基本局規則

    數獨表是一個 9 X 9 的宮格!其中對這個 81宮格 的每一種划分的區塊內,標注着不重復的 1 ~ 9 數字!

     一共有三種划分方法:

      第一種——像上面的圖一樣,中間的粉線把 81 宮格分成了 9 個 九宮格!

      第二種——上面的每一行都看作一個區塊(上面的八條橫線,將 81宮格 划分成 9 行 )

      第三種——上面的每一列都看作一個區塊(上面的八條豎線,將 81宮格 划分成 9 列)

    將上述三種划分的區塊里 1~9數字不重復的填入,這就是我們數獨游戲的內容了!(其實我不知道怎么玩,也沒有看過規則,這是自己總結的)

  2、我的開局思路

    (a). 首先需要找到表格上未填入的數字每一種有多少個,找到剩余未填數目最少的那一個(如上圖就是 6 ,它剩余 5 個是沒有填的)

    (b). 我們看看有什么地方可以填入 6 

     (c). 看右上角的九宮格,由於它的下面兩個九宮格都有 6,分析得出結論——左上角的 6 應該在 這個九宮格的第 2 列,然后分析行,得出結論——左上角的 6 應該在這個九宮格的第 1 行 或 第 3 行,綜上所述 6 的坐標應該是 (1,2) 或 (3,2)位置【九宮格內】!因為 (3,2)位置已經有了數字 4,所以 6 應該在 (1,2)位置。

     (d). 同理,找到其余結果。(剩下的兩個九宮格里的 6 沒有辦法找到,因為是有 2 種可能,所以我們只標記一下)

    (e).可以繼續選擇去找下一個(除了已經處理過的 6 以外)剩余數目最小的數字,去操作。

     (f). 然后我就發現,做不動了!怎么辦呢?我們可以根據 豎列的性質來做,因為每一豎列划分也是不能 同為一值 的。(比如最右方 1 6 4 已經占領了右下九宮格的最后一列,所以我們的 2 只能在前兩列出現,但是右上九宮格的 2 出現在了第一列,所以 2 只能在右下九宮格的 (2,3) 位置了)。

    (g). 還有呢?我們可以做橫列分析這個是比較笨的方法,我能不用就不用!

      原理——一個位置可能出現的數值集合 = {1,2,3,4,5,6,7,8,9} - {在這一行出現過的數值} - {在這一列出現過的數值} - {在這一個九宮格出現過的數值},當這個集合只能有 1個數值的時候我們就可以做判斷了。

      適用范圍——當某一行和某一列的出現過的數值集合相差較大時,以及某一個划分已經有8個數值填好了的情況。

      舉例——上面圖中的 8 號位置的 7 號位所在行出現數值集合 = {2,3,4,5,6},列對應集合 = {1,5,6,7,9},所以只能填 8 了。

    (h). 那這樣就可以了嗎?顯然不是這樣!看下圖的提示位置實際上能出現的值里沒有 9,為什么呢?因為 1 號位 九宮格的 6 號位是 9 所以 第 3 列是不可能有 9 的,進而確定了 7 號位九宮格的 9 只能出現在 (3,1) 和 (3,2) 位置,也就是說第 3 行,所以自動綁定了 8、9 號位的九宮格內 9 不能出現在 第 3 行!同理,可以得到 9 號位九宮格的 9 只能出現在 第三列。

    (i). 特別的還有 多項對應,就是比如 有 3 個位置, 第一個位置可能取值於 {1,2,3}中的一個,而第二第三位置可能取值{2,3}中的一個!那么第一個位置只可能是 1!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM