數獨是怎麼設計的?

從高中起就經常玩數獨,今天突然想到,與其解開數獨,是不是設計數獨會更難呢?
尤其是那種一開始沒有幾個數字,每次整個九宮格都只可能推出一個格子,然後再推下一個格子的那種。一環扣一環的,是倒著一步一步設計出來的嗎?
求大神解釋數獨是如何設計出來的。


我手工出過很多題,大部分是先設計規則,然後填出一個滿足規則的終盤,再挖數,挖完以後看條件再調整難度,如果難了就再加點數,如果簡單再看看能不能繼續挖或者換一種挖法。

但是你說的那種,我曾經印象深的設計過兩個題,都不是先找終盤,而是逐步增加條件,每一個條件看能解出多少,然後在解不下去了的時候再加條件,加條件要注意兩點:1是加完條件依然有解(可能還是多解),2是加的條件可以再次推理出新的線索,直至這道題最後唯一解。然後保留所有自己加的條件。

一般手工出題都是變型數獨,標準數獨軟體比手工強,所以基本都是用軟體,當然出題思路也是差不多的。

另外手工出題對出題人的解題能力要求比較高,自己就不太會解的話也沒法出出好題。

你可以試試,期待新的作者和新的作品。


01 | LetsMakeNPElem
該網站還提供了一個 GPL 的程式用於生成各種奇形怪狀的數獨問題。


用計算機解數獨非常容易,理論上可以用計算機算出數獨的所有可能形式。
從玩過的數獨遊戲來看,主要有兩種設計方法。
一種是隨機給出一個合法的題目(數字的個數依難度變動),然後計算一個可能的解,或者反過來從一個可能解中消除部分數字來產生一個合法題目。這種方法的問題是,最後得到的解可能不唯一,不能完全通過推理得到答案。所以玩這類數獨最鬱悶。
另外一種是事先設計好題,玩家只能選擇難度不同的題進行遊戲。這類數獨題可以從隨機生成的題中進行篩選,確保解是唯一的,這樣你就可以完全靠推理找出答案。當然,實踐中也可能是直接使用以前有名氣的題目。


基本上就是先隨機生成完整數獨方陣,然後去掉一定數量數字,再機器解題,如果找到多個解就重新生成。這樣保證有且僅有一個解。

謎題沒有必須對稱的要求。 初始數字數量確實是直接決定難度的關鍵因素,越少時難度一般會越大。如果是傻瓜式的搜索,每少一個數字可以認為工作量會增加9倍。而除去盲猜以外的解題策略都會依賴於特殊位置上的數字組合,數字少的時候可用的策略就很少。需要注意的是就算初始數字個數相同的謎題其難度也會不同,取決於完整解題步驟中所使用的策略。


我也在思考這個問題,所以搜到了樓主的提問。可從答案看來並沒有樓主想要的啊。


推薦閱讀:

TAG:數學 | 數獨 | 趣味數學 | 魔方 |