最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

數(shù)獨(dú)題目如何自己出?

2021-04-05 09:27 作者:SunnieShine  | 我要投稿

因?yàn)橛信笥严雽W(xué)習(xí)如何自己出一道數(shù)獨(dú)題目,今天我們就來介紹一下這個(gè)。

Part 1 手動(dòng)出題

手動(dòng)出題分兩種:空盤填數(shù)和終盤摳數(shù)。它們是兩種完全相反的出題操作。一種是從空盤開始,上手試填一些位置,然后邊試邊解,直到題目唯一解的過程;另外一種則是找一個(gè)終盤,然后去掉一些數(shù)字,邊摳邊解題,使得題目唯一解的過程。

1-1 空盤填數(shù)

我們?cè)囍鴣砜纯慈绾慰毡P填數(shù)出一道唯一解的題目。首先,我們要找一個(gè)數(shù)字?jǐn)[放的基本模型。比如下面這樣:

接著,我們需要在藍(lán)色格子里填上合適的數(shù)字來保證題目的唯一性。這個(gè)形狀是你任意指定的,但有一些基本原則需要你注意。

  • 不能空上三個(gè)連續(xù)的宮不放藍(lán)色格子;

  • 不能空出多于 5 個(gè)宮不放藍(lán)色格子;

  • 不能在并排的三個(gè)宮里,空上兩行(或兩列)不放藍(lán)色格子;

  • 建議藍(lán)色格子至少 18 個(gè)(但請(qǐng)盡量保證藍(lán)色格子至少 24 個(gè));

  • 建議藍(lán)色格子擺放不要太密集(否則題目可能會(huì)過于簡(jiǎn)單);

中間紅色格子的邊框請(qǐng)你忽略掉。整個(gè)出題的過程都跟這個(gè)紅色邊框沒有任何的關(guān)系。

另外,任何一個(gè)唯一解的數(shù)獨(dú)題目,最少也有 17 個(gè)提示數(shù),但是,17 提示數(shù)的題目我們目前沒有任何辦法可以自己出題搞出來,而基本都是電腦通過排列組合的形式生成的,因此我們無法手動(dòng)完成“只用 17 個(gè)藍(lán)色格子就可以出一個(gè)唯一解的題目”這一個(gè)問題。數(shù)獨(dú)出題也是 NP-Hard 問題。換句話說,我們沒有能力通過人工進(jìn)行證明和得到出題的通用效率高的過程:因?yàn)闀r(shí)間耗費(fèi)不是我們?nèi)祟惸軌虺袚?dān)得起的。

我相信你應(yīng)該看得懂上面給的這些條條款款,所以我就不作說明了。說白了就是不要讓空白(沒有標(biāo)記藍(lán)色的格子)集中到一起,否則就不能保證唯一性。另外,上面選擇的這個(gè)形狀比較合適,是因?yàn)檫@樣的形狀,藍(lán)色格子比較分散,盡量都保證了每個(gè)行、列、宮都有藍(lán)色格子放提示數(shù),這樣就限制得很嚴(yán)格了。

接著,我們?cè)囍S意在藍(lán)色格子里填上我們喜歡的數(shù)字。但請(qǐng)注意,填數(shù)的時(shí)候,一邊填一邊看數(shù)字是否對(duì)周圍會(huì)產(chǎn)生影響。比如說,我連續(xù)填入了多個(gè) 1,但是這些填入的 1 會(huì)立刻影響到某個(gè)行、列、宮,導(dǎo)致這個(gè)(或者這些)行、列、宮里無法找到合適的位置填入 1。這個(gè)時(shí)候我們就需要修改數(shù)字了。一定要保證數(shù)字填入的時(shí)候是合理的。

我們?cè)囍S意填入了 9 個(gè)不重樣的數(shù)字。顯然,這么做是可以的,因?yàn)椴恢貥拥臄?shù)字就不會(huì)影響到別的數(shù)字的填數(shù)位置。

接著,其它藍(lán)色格子我們還沒有填數(shù),我們還得繼續(xù)填。繼續(xù)找合適的數(shù)字去填;當(dāng)然,也不要過于在意填數(shù)必須是連續(xù)的序列啊、有意義的序列這類要求較高的條件。因?yàn)檫@樣做很有可能會(huì)導(dǎo)致題目無法進(jìn)行,或者無法保證唯一性。

比如這樣,連續(xù)的 1、2、3、4 很有可能就無法保證題目唯一性了。因此,我們隨便填一些數(shù)字進(jìn)去就可以。填入了這么多數(shù)字后,我們需要手動(dòng)完成解題操作。因?yàn)樗{(lán)色格子還沒有全部擺放數(shù)字,因此我們現(xiàn)在要通過尚未完成的殘局開始做題。能做多少是多少,這里是為了看是不是有藍(lán)色的數(shù)字是可以通過解題固定下來的。換句話說,我們已經(jīng)有的這些數(shù)字很有可能會(huì)讓一些沒填數(shù)的藍(lán)色格子固定下唯一的填法。在這個(gè)基礎(chǔ)上,如果想要為這個(gè)位置的藍(lán)色格子填上別的數(shù)字的話,顯然就無解了。

但是,如果數(shù)字還不夠出現(xiàn)這類現(xiàn)象(也不會(huì)造成別的格子無解)的話,我們就繼續(xù)往藍(lán)色格子里填數(shù),直到一些位置可解了位置。

現(xiàn)在我們假設(shè)左下方填入 7、1、7、1。這些數(shù)字是隨意給的,你可以給別的數(shù)字??梢钥吹剑@樣填的話,7 宮的 1 就明顯可以直接通過排除法固定下來了。因此,我們就按照這個(gè)形式去找填數(shù)結(jié)果。

如果你并不是為了出難題,那么排除和唯一余數(shù)在出題過程中就基本夠用了。如果你發(fā)現(xiàn)目前排除和唯一余數(shù)無法進(jìn)行解題操作,那么就說明題目數(shù)字還不夠。這個(gè)時(shí)候你還得加數(shù)字。

最終,我們找到了一個(gè)合適的組合:

如圖所示,這個(gè)題目是唯一解的。把藍(lán)色數(shù)字抽取出來,就是題目了。

1-2 終盤摳數(shù)

說實(shí)話,終盤摳數(shù)比前文做起來要簡(jiǎn)單。但是,由于終盤固定,因此我們無法自定義一些復(fù)雜的條件在里面,比如“一些位置是連續(xù)擺放的提示數(shù),數(shù)字也是連續(xù)的”這些條件,只能看終盤本身的造化了。如果終盤不存在這樣的形式的話,那么我們無法通過終盤摳數(shù)字的模式去出這樣的題目。

我們隨便找一個(gè)題目的終盤來作為基礎(chǔ)盤面生成:

下面我們從盤面里摳一些數(shù)字來完成出題。你要摳成什么形狀都隨你定,但是還是前面的那些條條款款,不要摳到題目沒辦法唯一解了。

注意,摳掉的位置都是空格,沒摳掉的位置全是提示數(shù)。因此你得多摳點(diǎn)數(shù)字下來。不然題目會(huì)過于簡(jiǎn)單。

繼續(xù)摳。

還不夠少。繼續(xù)。

繼續(xù)。

實(shí)在無法繼續(xù)進(jìn)行了。題目就這樣了。一共 28 個(gè)提示數(shù),不管數(shù)字多少,總之題目不難就是了。

Part 2 自動(dòng)出題

下面說一下使用電腦軟件進(jìn)行自動(dòng)出題。因?yàn)槭謾C(jī) App 我了解得不多,因此我就不在這里班門弄斧了。說一下電腦的軟件。

HoDoKu,是荷蘭的程序員開發(fā)的一個(gè)程序,可以提供題目分析、出題等功能。我們用的是出題功能。

點(diǎn)這個(gè)就完事了。然后就會(huì)列出題目,題目用到的技巧等等信息。

呃……這個(gè)又過于簡(jiǎn)單了。但是電腦出題并不能設(shè)置各種條件。HoDoKu只能生成中心對(duì)稱擺放的提示數(shù)的題目,且是隨機(jī)出的,因此題目本身你無法控制數(shù)字的擺放條件。

數(shù)獨(dú)題目如何自己出?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平定县| 华池县| 武安市| 中卫市| 台东县| 光泽县| 阿拉善左旗| 星子县| 宜州市| 岚皋县| 浏阳市| 门头沟区| 凤凰县| 同仁县| 沁源县| 康定县| 民乐县| 永宁县| 浦城县| 天峨县| 东丰县| 嘉峪关市| 镶黄旗| 伽师县| 肃宁县| 当雄县| 孟津县| 游戏| 长寿区| 阳泉市| 兰西县| 北辰区| 平南县| 固阳县| 荣昌县| 石柱| 平舆县| 古浪县| 吉木萨尔县| 德化县| 哈巴河县|