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

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

致所有新朋友的一份萬(wàn)字?jǐn)?shù)獨(dú)入門指南

2022-06-13 23:43 作者:SunnieShine  | 我要投稿

這是一篇準(zhǔn)備給游玩數(shù)獨(dú)的新朋友們閱讀的長(zhǎng)篇入門教學(xué)指南。這里說(shuō)的教學(xué)不是真的在這篇文章里放入教學(xué)的資料和內(nèi)容,而是給大家做一個(gè)總結(jié),讓各位能夠認(rèn)識(shí)清楚數(shù)獨(dú)的游玩環(huán)境,以及數(shù)獨(dú)如何玩比較適合你自己。

第一部分 數(shù)獨(dú)簡(jiǎn)介

數(shù)獨(dú)是一個(gè)邏輯推理的游戲。我們需要在空格里填入數(shù)字 1 到 9,然后每一行的 9 個(gè)格子、每一列的 9 個(gè)格子以及每一個(gè)由粗線圍起來(lái)的 3 × 3 的區(qū)域的 9 個(gè)格子里包含數(shù)字 1 到 9,不多不少。

比如這個(gè)例題。

左邊是題目。右邊則是題目的答案。我們一般也叫它。是的,在最開始做一些數(shù)獨(dú)題目的時(shí)候,我們必須會(huì)給出一些初始就有的數(shù)字??赡苣阍谄綍r(shí)看到一些綜藝節(jié)目里,可能有一些玩家對(duì)數(shù)獨(dú)可能不是特別了解,從空盤(沒數(shù)字)或者就給一兩個(gè)數(shù)字就開始填,這其實(shí)是非常不可取的。原因在于,空盤或者就給出一兩個(gè)數(shù)字,可能并不能保證題目的合理性和唯一性。

順帶一說(shuō),這個(gè)題目的樣式是 6、1、3 三個(gè)數(shù)字,就是今天,6 月 13 號(hào)。

這種出題怎么做,我們稍后可以簡(jiǎn)單說(shuō)一下。向挖坑

所謂的合理性,就是題目的本質(zhì)是拿給玩家去完成、去做,享受這份數(shù)獨(dú)帶來(lái)的樂趣。但是如果題目就只有很少的一些數(shù)字的話,題目可能會(huì)有非常多奇奇怪怪的填法,導(dǎo)致題目怎么做都行。既然隨便咋填都行,那何談數(shù)獨(dú)的樂趣呢?你說(shuō)是吧。

其次是唯一性。所謂的唯一性,說(shuō)的是題目的唯一解的這個(gè)特性。題目隨便給數(shù)字是不能保證題目只有一個(gè)答案的。因?yàn)槟汶S便咋填可能都可以。只要行、列、宮不出現(xiàn)相同的數(shù)字,隨便怎么填都對(duì)就違背了我們邏輯推理的初心和做數(shù)獨(dú)的宗旨。因此,這樣的題目仍然是不可取的。

一般來(lái)說(shuō),要保證一個(gè)題目至少有唯一解,是非常不容易的。目前有兩種出題辦法,這個(gè)我們稍后說(shuō)明;另外,保證唯一解的題目通常都至少包含有 17 個(gè)提示數(shù)。所謂的提示數(shù),就是在剛才圖片里左邊給的那些黑色的初始就有的條件信息。它們作為題目的已知條件,讓你通過它們來(lái)完成題目,所以也稱為已知數(shù)

17 個(gè)提示數(shù)是能保證唯一解的題目的最少提示數(shù)個(gè)數(shù),換而言之,一個(gè)唯一解的題目必然至少包含 17 個(gè)提示數(shù)。但是反之不然:你隨意出的題目,可能即使超過 17 個(gè)提示數(shù),題目也不一定是唯一解的。所以這側(cè)面印證了數(shù)獨(dú)的嚴(yán)謹(jǐn)。

這是你必須要了解的,作為數(shù)獨(dú)玩家入門必須掌握的兩個(gè)要素:題目要可以做,而且還要唯一解才行。這是我要說(shuō)的第一個(gè)點(diǎn)。

第二部分 技巧

完成數(shù)獨(dú)是需要我們掌握一些邏輯推理的定勢(shì)思維的,這些東西被我們習(xí)慣稱為解題技巧,一般就叫它技巧。數(shù)獨(dú)按照難度劃分,技巧大概可以分為這樣一些:

  • 入門技巧:排除、唯一余數(shù)、區(qū)塊、數(shù)組(里的數(shù)對(duì));

  • 進(jìn)階技巧:數(shù)組(剩下的)、基本的魚結(jié)構(gòu)(也就是標(biāo)準(zhǔn)的魚,X-Wing 啊、三/四階魚?。?、唯一矩形和欠一數(shù)對(duì)結(jié)構(gòu);

  • 困難技巧:帶魚鰭的魚、唯一環(huán)、拓展矩形、可規(guī)避矩形、BUG、SdC 的基本結(jié)構(gòu);

  • 極難技巧:普通鏈(包含同數(shù)鏈,也叫單數(shù)鏈)、異數(shù)鏈、帶結(jié)構(gòu)的鏈等等;

  • 地獄技巧:復(fù)雜魚(什么 Franken、Mutant 魚啊,什么唯一性技巧的極致推廣啊,毛刺毛邊)這些;

  • 只提供研究的技巧(有幾個(gè)技巧就屬于這個(gè)級(jí)別,不過平時(shí)做題可以說(shuō)是根本遇不到,所以那些就不在這里說(shuō)了)。

按照學(xué)習(xí)的難度的話,我可以大概給各位列舉一個(gè)表格,如果你對(duì)數(shù)獨(dú)學(xué)習(xí)的階段不怎么了解,或者是想要尋求一些對(duì)技巧學(xué)習(xí)有幫助的信息的話,可以看看:

  • 入門(必學(xué)):這些技巧作為基本中的基本、基礎(chǔ)中的基礎(chǔ)、基功中的基功、基佬中的基佬,是所有玩數(shù)獨(dú)的朋友都必須學(xué)的“必經(jīng)之路”。不論你是什么研究數(shù)獨(dú)的哪一個(gè)方向(比如比賽啊、閑玩啊、PK 啊、數(shù)獨(dú)之類的編程算法之類的),這些東西都是你需要了解的部分。

  • 進(jìn)階:這些技巧比入門要難一些。對(duì)于一些“自己覺得自己腦子比較笨笨”的小伙伴的話,可以稍微看看,提升一下自己的邏輯推理能力。這類型的技巧不及入門技巧出現(xiàn)頻繁,但在數(shù)獨(dú)圈子里也比較常用。特別是一些 PK 網(wǎng)站上(是,數(shù)獨(dú)也有 PK 網(wǎng)站的,這個(gè)我們稍后說(shuō),呃挖坑),這些技巧出現(xiàn)頻率確實(shí)也比較高。但是,如果真要較真的話,確實(shí)也不一定非要去了解它們,自己私下玩數(shù)獨(dú)只需要興趣愛好驅(qū)使,所以看你個(gè)人喜不喜歡想不想要繼續(xù)下去。

  • 困難:這些技巧說(shuō)實(shí)話,已經(jīng)超出了一些數(shù)獨(dú)相關(guān)活動(dòng)的范圍。比如說(shuō)數(shù)獨(dú)相關(guān)的國(guó)內(nèi)國(guó)際賽事(譬如中國(guó)數(shù)獨(dú)大會(huì)、中國(guó)數(shù)獨(dú)錦標(biāo)賽、大學(xué)生數(shù)獨(dú)錦標(biāo)賽等等),這些技巧都不會(huì)出現(xiàn)。是的,你沒聽錯(cuò),根本不會(huì)出現(xiàn)。這些技巧的難度,對(duì)于愛鉆研的朋友來(lái)說(shuō),多努努力是可以理解的,而且是可以自行理解的,不需要查資料找人去問就可以搞定的技巧類型,但它們確實(shí)不屬于基本的難度。特別是一些局面,BUG 技巧出現(xiàn)頻率特別高,而且經(jīng)常在你卡住的地方總是意識(shí)不到要用它,但它又不一定特別難看到。所以好用,但較難理解,這些技巧被歸類到這里。

  • 極難:這些技巧已經(jīng)遠(yuǎn)遠(yuǎn)超出平時(shí)的難度。它們的理解難度甚至可能需要你回頭去看數(shù)學(xué)書。呃是的,數(shù)學(xué)的書。特別是鏈的雙向性,證明是需要用到你高中學(xué)過的知識(shí)點(diǎn):逆否命題。這些東西對(duì)于可能比較喜歡數(shù)學(xué)的玩家來(lái)說(shuō)會(huì)比較喜歡,但對(duì)于普通的朋友的話呢,我勸你還是不要去了解了。鏈就屬于典型的這一類的技巧,而這種技巧如果理解不通透的話,一來(lái)會(huì)被經(jīng)常認(rèn)為是一種猜測(cè)和概率思維,二來(lái)是迷惑性極高,經(jīng)常會(huì)覺得自己好像理解對(duì)了,但是理解并不正確。所以,不要個(gè)三兩個(gè)月,這些東西很難上手。特別是這類技巧,不有點(diǎn)基礎(chǔ),確實(shí)很困難。

  • 地獄:這些技巧比極難還要難,而且它們可能還會(huì)挑戰(zhàn)你的思維。很多時(shí)候,這樣的技巧出現(xiàn)頻次不夠高,而且理解起來(lái)也極其復(fù)雜。特別是唯一性,稍微不注意,一走神就完全理解不了。我不是說(shuō)笑,這些技巧我最開始都學(xué)了很久,找了很多朋友也幫助我去理解很多東西。我畢竟不是數(shù)學(xué)系的朋友們的思維,我沒有那么嚴(yán)謹(jǐn),數(shù)學(xué)也沒那么好,所以很難對(duì)這些技巧理解通透。不只是我,對(duì)于在看這份文檔的你,一旦看起這樣的資料/書籍來(lái),應(yīng)該也有這樣的感覺??粗粗绻粓?jiān)持基本可以說(shuō),立即推,放棄學(xué)習(xí)。這還只是學(xué)習(xí)技巧本身,技巧都沒有理解,就根本不要談及做題的時(shí)候找它們了。這個(gè)難度層次已經(jīng)差不多接近爆表了。

  • 只提供研究的技巧:屬于這個(gè)難度的技巧一共有兩個(gè):網(wǎng)(Multi-sector Locked Set)和飛魚導(dǎo)彈(Exocet)。這兩個(gè)技巧不論在你平時(shí)做基本題還是做難題,不論你是自己做還是在比賽做,都是不可能遇到的。這兩個(gè)技巧純粹是屬于提供研究使用,它的出現(xiàn)頻次可以說(shuō)是低到完全遇不到的級(jí)別。它可以幫助你提升和升華對(duì)數(shù)獨(dú)體系的認(rèn)知,但難度比地獄級(jí)還要難,別怪我沒提醒你。

那么這個(gè)列表怎么看呢?你先看看你對(duì)數(shù)獨(dú)的認(rèn)知有多少,以及繼續(xù)想往數(shù)獨(dú)的哪個(gè)方向去發(fā)展。如果你對(duì)技巧要深入的話,就從你當(dāng)前接觸的技巧(你認(rèn)為可以掌握了,比如說(shuō)可以理解了,上手不說(shuō)可以隨便用,但至少會(huì)找一點(diǎn)了的這種情況)的級(jí)別,繼續(xù)往前提升一個(gè)級(jí)別,然后再去看再去學(xué)習(xí)。

我感覺我說(shuō)得比較清楚了。希望它們對(duì)你有一定的幫助。

那么技巧就說(shuō)到這里。

第三部分 數(shù)獨(dú)的研究方向和分支

數(shù)獨(dú)并不是一個(gè)數(shù)學(xué)游戲。我不喜歡將它稱為一個(gè)數(shù)學(xué)游戲。你說(shuō)它游戲可以,因?yàn)樗_實(shí)是一種益智類的游戲。但是,數(shù)獨(dú)從前文介紹的這些內(nèi)容來(lái)看,它根本也沒有用到數(shù)學(xué)的知識(shí)(當(dāng)然,鏈的雙向性的證明除外)。我希望各位放平心態(tài),不要覺得數(shù)獨(dú)的名字帶個(gè)數(shù),就以為這個(gè)東西跟數(shù)學(xué)有關(guān)系。倒不是因?yàn)槲也皇菙?shù)學(xué)系的,就不喜歡叫它數(shù)學(xué)游戲之類,而是因?yàn)?,我不希望各位將它和?shù)學(xué)的內(nèi)容關(guān)聯(lián)起來(lái),這不是玩數(shù)獨(dú)的一個(gè)好的思維方式。

實(shí)際上,數(shù)獨(dú)和數(shù)學(xué)的關(guān)系只有兩個(gè)地方:

  1. 數(shù)獨(dú)的一小部分技巧,需要數(shù)學(xué)知識(shí)的依托來(lái)進(jìn)行證明。各位,這里是玩數(shù)獨(dú),是享受數(shù)獨(dú)的樂趣,是各位的興趣愛好驅(qū)使,并不是來(lái)當(dāng)課程來(lái)學(xué)習(xí)的。所以請(qǐng)一定不要覺得,數(shù)獨(dú)的證明就必須學(xué),必須會(huì)。你做題過程又用不著去證明。會(huì)了這個(gè)技巧之后,就完全可以通過這樣技巧,去總結(jié)一個(gè)正確和嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu)構(gòu)造,和滿足條件規(guī)則出來(lái),這樣你下回就不用再來(lái)證明一遍浪費(fèi)時(shí)間了。當(dāng)然,確實(shí)需要數(shù)學(xué)知識(shí)來(lái)證明一些東西,所以這是數(shù)獨(dú)需要數(shù)學(xué)依賴的第一點(diǎn)。

  2. 數(shù)獨(dú)游戲是數(shù)學(xué)家歐拉發(fā)明的。

僅此兩點(diǎn)而已。因此,切勿認(rèn)為數(shù)獨(dú)和數(shù)學(xué)有關(guān)系。

我在一些地方經(jīng)??吹揭恍┡笥言诎l(fā)帖子啊發(fā)問題的時(shí)候來(lái)詢問比如幻方之類的東西。顯然,幻方和數(shù)獨(dú)最大的區(qū)別就在于,幻方是需要行列對(duì)角線求和的計(jì)算規(guī)則的(當(dāng)然有些幻方規(guī)則可能不一定需要,這個(gè)看問題需求);但數(shù)獨(dú)完全不需要計(jì)算,它最基本的規(guī)則就兩點(diǎn):

  1. “不重復(fù)”:數(shù)字在行、列、宮的 9 個(gè)格子里剛好湊出一套完整的 1 到 9,不多不少;

  2. “唯一性”(雖然有點(diǎn)勉強(qiáng)但還是放在這里吧):題目要要求唯一解。

這兩點(diǎn)都跟你認(rèn)知里的數(shù)學(xué)沒有任何的關(guān)系。我希望各位要對(duì)數(shù)獨(dú)有一個(gè)良好而且完善的認(rèn)知。每當(dāng)我看到這樣的朋友發(fā)來(lái)比如幻方的題目給我的時(shí)候,我都有所遺憾。倒不是想說(shuō)朋友們什么什么,我確實(shí)覺得,我自己一個(gè)人推廣數(shù)獨(dú)也不一定有效,范圍也不夠大。到現(xiàn)在數(shù)獨(dú)已經(jīng)傳入中國(guó) 16?年了,但仍舊有很多朋友覺得,這樣的東西是數(shù)學(xué)內(nèi)容,于是去摒棄啊或者是去逃避它們,所以我只能感嘆這個(gè)世界確實(shí)太大了。我做的就是推廣,那么我所做的,就只能是發(fā)點(diǎn)數(shù)獨(dú)有關(guān)的東西,僅此而已,盡我的微薄之力。呃,這么說(shuō)又有點(diǎn)玻璃心了。

回到標(biāo)題。數(shù)獨(dú)有哪些研究的方向和學(xué)習(xí)的方向呢?主要是有這些:

1 刷題流

通過不斷的刷題,一直都做簡(jiǎn)單的題目,來(lái)達(dá)到提速的過程。一直都做簡(jiǎn)單題并不是一件羞恥和不能搬上臺(tái)面的行為。相反,對(duì)于這類朋友而言,掌握的更多的是一種習(xí)慣和熟練度。簡(jiǎn)單題的技巧就我前面說(shuō)的“排除”、“唯一余數(shù)”、“區(qū)塊”和“數(shù)對(duì)”四種,不斷重復(fù)完成只帶有這些技巧的題目,只要做題多了,速度自然就起來(lái)了。可能很多玩家覺得數(shù)獨(dú)找起來(lái)挺難挺慢的。我依稀記得我入坑的時(shí)候大概 2008 年吧,那會(huì)兒晚上晚自習(xí)好像(記得不是很清楚),我在靠窗的位置(座位靠窗,王的故鄉(xiāng)),拿著我那會(huì)兒唯一的一本數(shù)獨(dú)的書在自己研究技巧。那會(huì)兒沒有通信設(shè)備,手機(jī)啥的都沒有,就自己在書上劃來(lái)劃去去理解一些我“自創(chuàng)”的技巧。我記得我那會(huì)兒能自己發(fā)現(xiàn)到數(shù)對(duì)這樣的技巧,我覺得這樣的過程挺開心的。當(dāng)然了,玩數(shù)獨(dú)耽誤了學(xué)習(xí)也是真的??

2 難題流

有些朋友可能就跟我差不多,我不太喜歡做簡(jiǎn)單題去重復(fù)這樣的操作。那么可能你比較喜歡去做難題。難題是一種挑戰(zhàn),人也是大自然的一種神奇的物種,既然人類發(fā)展至今習(xí)得了很多的技巧和生存技能,那么挑戰(zhàn)必然是我們?nèi)祟惒豢扇鄙俚囊稽c(diǎn)。做難題確實(shí)對(duì)于一些技巧來(lái)說(shuō)要求較高,不過對(duì)于邏輯推理來(lái)說(shuō),多學(xué)習(xí)技巧其實(shí)是有幫助的。我還是拿我自己舉例子。我就很喜歡學(xué)新的技巧,因?yàn)閷?duì)于邏輯推理來(lái)說(shuō),我接觸的類型越多,那么我的思維方式也就越多。平時(shí)就可以有更多的方法跟爸媽斗嘴。嗯,正能量一點(diǎn),學(xué)習(xí)數(shù)獨(dú)技巧越多,你對(duì)思維的把控就會(huì)越多樣化。不僅是數(shù)獨(dú)本身,這樣的思維你甚至可以用在生活之中。例如鏈要用逆否命題,那么多鞏固這樣的證明,你在生活中也會(huì)去自然而然去思考很多逆否命題的邏輯。比如說(shuō)“感冒會(huì)流鼻涕”,那么逆否則是“不流鼻涕就不感冒”。有些人總愛把邏輯搞混,說(shuō)成逆命題和否命題形式,比如說(shuō)“流鼻涕就是感冒”或者“不感冒就是不流鼻涕”。且不說(shuō)對(duì)不對(duì),起碼違反了原命題和逆否命題的真值等價(jià)的一說(shuō),所以這些命題都跟我之前說(shuō)的完全沒有關(guān)聯(lián)了。如果在遇到這樣的人去跟你說(shuō)這些,你就可以反駁ta了(呃說(shuō)到頭還是教人去斗嘴……??)

3 變型流

不知道各位玩過魔方?jīng)]有(我反正是沒玩過)。魔方除了三階的標(biāo)準(zhǔn)魔方,還有一些奇奇怪怪的魔方,比如三角形的,比如長(zhǎng)方形的,甚至是規(guī)格推廣。數(shù)獨(dú)也是如此,數(shù)獨(dú)里也可以對(duì)基本的數(shù)獨(dú)規(guī)則進(jìn)行推廣,得到更多的數(shù)獨(dú)玩法,這樣的數(shù)獨(dú)稱為變型數(shù)獨(dú)(也叫變形數(shù)獨(dú))。常見的變型數(shù)獨(dú)也不少,比如:

  • 鋸齒數(shù)獨(dú)(也叫不規(guī)則數(shù)獨(dú),也就是說(shuō)把 3 × 3 的正方形九宮格改成歪瓜裂棗的形狀);

  • 對(duì)角線數(shù)獨(dú)(標(biāo)準(zhǔn)的數(shù)獨(dú)規(guī)則是沒有包含對(duì)角線不重復(fù)的規(guī)則的);

  • 連續(xù)數(shù)獨(dú)和不連續(xù)數(shù)獨(dú)(給數(shù)獨(dú)附上擋板,標(biāo)識(shí)相鄰格子填數(shù)差為 1 之類的);

  • 摩天樓數(shù)獨(dú)(甚至把數(shù)字給賦予了高度的概念);

  • 殺手?jǐn)?shù)獨(dú)(這個(gè)數(shù)獨(dú)規(guī)則里帶計(jì)算,要求求和結(jié)果等于多少多少);

  • 額外區(qū)域數(shù)獨(dú)(除了標(biāo)準(zhǔn)的行、列、宮不重復(fù)以外,還要求自定義的一些地方也必須滿足這樣的規(guī)則,一套 1 到 9);

  • 窗口數(shù)獨(dú)(四個(gè)額外的 3 × 3 的額外的部分也都要求不重復(fù));

  • 無(wú)馬數(shù)獨(dú)、無(wú)象數(shù)獨(dú)(按照象棋棋子的方式前進(jìn)作為規(guī)則條件的數(shù)獨(dú));

  • 斜線數(shù)獨(dú)(盤面部分單元格會(huì)斜著用一條線條穿過,線條上的填數(shù)不相同);

  • 等等……

就不一一列舉了。我隨便拿一個(gè)變型數(shù)獨(dú)來(lái)舉例說(shuō)明下吧。

比如拿對(duì)角線數(shù)獨(dú)來(lái)說(shuō),對(duì)角線數(shù)獨(dú)除了要滿足基本的數(shù)獨(dú)規(guī)則以外,兩條對(duì)角線(圖里標(biāo)注出來(lái)了,雖然有點(diǎn)不清楚)上也都各自包含 9 個(gè)格子,這 9 個(gè)格子也是一套完整的 1 到 9。

可以看到,變型數(shù)獨(dú)就是把數(shù)獨(dú)的基本規(guī)則加以“加工”,變?yōu)閹в蓄~外規(guī)則的變體類型的數(shù)獨(dú)題目。當(dāng)然了,什么規(guī)則都可以,比如學(xué)數(shù)學(xué)的朋友可以考慮出個(gè)微積分?jǐn)?shù)獨(dú);學(xué)計(jì)算機(jī)的朋友可能會(huì)出二叉樹數(shù)獨(dú)什么的。

啊我開玩笑的啊,別信我的鬼話??!

當(dāng)然,說(shuō)了這么多,意思就是想給各位傳達(dá)一點(diǎn)。如果你對(duì)技巧不感冒的話,可以考慮做這些題目。變型數(shù)獨(dú)由于規(guī)則比較新奇,所以這樣的題目往往出出來(lái)都不難(當(dāng)然,難的也有),只不過和前文敘述的標(biāo)準(zhǔn)的數(shù)獨(dú)的題目來(lái)說(shuō),變型數(shù)獨(dú)對(duì)于題目難度的要求其實(shí)并沒有那么高,因此這樣的題目是相對(duì)比較友好一點(diǎn)的。

不過,如果這類型的題目你還要去使用比較難一些的技巧的話,我勸你收手。特別是唯一矩形這樣的技巧。在變型數(shù)獨(dú)里,它們的使用難度會(huì)比標(biāo)準(zhǔn)數(shù)獨(dú)的難度要高出很多,稍不注意甚至?xí)缅e(cuò),即使它在標(biāo)準(zhǔn)數(shù)獨(dú)里是滿足規(guī)則的,在變型數(shù)獨(dú)里,同樣的結(jié)構(gòu)同樣的位置也不一定是正確的技巧邏輯。所以,請(qǐng)務(wù)必注意這種東西。

4 編程算法流

數(shù)獨(dú)的另外一種研究方向就是編程算法。編程算法的話,對(duì)于計(jì)算機(jī)的朋友來(lái)說(shuō)可能了解就會(huì)比較多一些,因?yàn)橛?jì)算機(jī)要學(xué)嘛。但是對(duì)于非計(jì)算機(jī)專業(yè)的朋友可能對(duì)編程算法掌握了解就不是特別多,那么這樣的研究方向可能基本觸碰不到,它的存在感也很低。

數(shù)獨(dú)游戲在編程這個(gè)角度來(lái)說(shuō)是很有說(shuō)頭的。比如說(shuō)數(shù)獨(dú)的一些算法:

  • 回溯算法:新手入門必學(xué)算法。使用“遞歸”或“棧+循環(huán)”來(lái)達(dá)到回退,來(lái)達(dá)到反復(fù)嘗試數(shù)字直到完成題目的算法。這樣的算法可能對(duì)于新手來(lái)說(shuō)非常友好,但是也需要至少接觸遞歸的概念,所以可能也不是特別容易學(xué),因此我才說(shuō)這個(gè)數(shù)獨(dú)在編程里特別有得說(shuō)。因?yàn)閮?nèi)容多,學(xué)的內(nèi)容也比較考驗(yàn)基本功,所以……

  • 舞蹈鏈算法:舞蹈鏈對(duì)于一些可能了解過算法深層次的朋友來(lái)說(shuō),會(huì)比較了解一些。它作為“網(wǎng)紅”算法,計(jì)算速度會(huì)比回溯要快,甚至可以說(shuō)快上不少,因此廣受青睞。不過,舞蹈鏈需要用到專門為這樣的謎題設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu):雙向循環(huán)十字鏈表。它其實(shí)已經(jīng)是一個(gè)了,叫它鏈表是因?yàn)樗鼜逆湵淼奶卣鬟M(jìn)行推廣得到:雙向循環(huán)十字鏈表就是普通的鏈表,從一個(gè)指向(指向下一個(gè)節(jié)點(diǎn))改成指向上、下、左和右四個(gè)節(jié)點(diǎn)。以這樣的形式構(gòu)成一張圖,而且還是一種正方形的圖,還不是隨便畫的那種。這種數(shù)據(jù)結(jié)構(gòu)難點(diǎn)在于復(fù)雜性,喜歡的朋友可以了解以下。舞蹈鏈算法除了可以解決數(shù)獨(dú)以外,還可以解決一些同類型的游戲,例如拼圖(比如說(shuō)給你一些類似俄羅斯方塊的那種部件,然后讓你拼湊它們,可以旋轉(zhuǎn)翻轉(zhuǎn)等等,然后放到一個(gè)長(zhǎng)方形或正方形的網(wǎng)格里)等等;

  • 周氏位運(yùn)算算法:呃聽起來(lái)很佛系還很離譜。實(shí)際上是一個(gè)姓周的網(wǎng)友發(fā)明和構(gòu)造的一種數(shù)獨(dú)解題算法。它的理解難度是從位運(yùn)算層面來(lái)的,它的速度很快。快到啥程度呢?解一道題平均大概只需要 20 微秒,顯然這樣的速度甚至比舞蹈鏈還要快,而且還快不少,這也是我說(shuō)為什么舞蹈鏈?zhǔn)蔷W(wǎng)紅算法的原因,各位可能對(duì)舞蹈鏈算法了解比較多,但對(duì)位運(yùn)算可以做數(shù)獨(dú)題了解很少。具體,這樣的算法快在哪里呢?首先,位運(yùn)算就比較快,其次是它的算法將眾多重復(fù)內(nèi)容進(jìn)行打表操作,還降低了迭代和循環(huán)帶來(lái)的時(shí)間復(fù)雜度。在這個(gè)算法下,你幾乎看不到大的循環(huán),基本都是 if 語(yǔ)句和 goto 的跳轉(zhuǎn)。代碼的話,因?yàn)樗唤o了思路,因此網(wǎng)上應(yīng)該不是很好找到源代碼,不過我按照這樣的思路寫了一份 C# 的,可以在這個(gè)鏈接里查看源代碼:https://github.com/SunnieShine/Sudoku/blob/main/src/Sudoku.Solving.Algorithms/Solving/Algorithms/Bitwise/BitwiseSolver.cs

除了解題算法可以提供研究,還有出題算法,模擬人工解題等等,都是可以了解了解的。我這里給各位附上一個(gè)我自己寫的數(shù)獨(dú)程序軟件的開源代碼倉(cāng)庫(kù)鏈接:

https://github.com/SunnieShine/Sudoku

如果有需要可以下載看看。是 C# 編程語(yǔ)言寫的,使用的是 .NET。

廣告就做到這里。點(diǎn)到為止。

5 理論流

可能還存在一些小伙伴,不喜歡做難題,不喜歡刷題,不喜歡比賽,不喜歡做變型,也不喜歡編程。那么,還有一個(gè)方向,就是學(xué)理論。就是純粹的理論知識(shí)。當(dāng)然了,這個(gè)一般人可能也不會(huì)接觸到,不過嚴(yán)謹(jǐn)一點(diǎn)呢就把它也列出來(lái)了。

純粹的理論知識(shí)可能會(huì)去學(xué)習(xí)和掌握那些不出現(xiàn)在平時(shí)做題之中的技巧。所以,這個(gè)方向也不容易,自己看著辦~

6 總結(jié)

總的來(lái)說(shuō)呢,數(shù)獨(dú)有如上 5 種比較清晰的方向可以提供你學(xué)習(xí)和了解數(shù)獨(dú)。你看你比較喜歡和適合哪個(gè)方向。

第四部分 填坑

前文說(shuō)了一些沒填坑的地方我這里一并都介紹一下。

1 出題

怎么去出一道題目,要保證題目是唯一解的,還要保證題目的難度比較適合你自己或者做題的那個(gè)人?我這里介紹幾個(gè)我常用的出題軟件吧。

出題一般有三類:

第一種是手工出題,也就是純手動(dòng)。自己全部的數(shù)字信息,推理過程和驗(yàn)證都靠自己的紙筆或電腦的 P 圖、手機(jī) P 圖軟件來(lái)做。這樣出題效率特別低,因此這里就不多介紹了,想了解的話可以參考我的一篇文章:

第二種是半自動(dòng)出題。半自動(dòng)出題的意思是,出題過程依賴于軟件,但需要手動(dòng)給出參數(shù),控制題目的難度啊,題目的形狀啊,已知數(shù)分布啊,或者是題目的類型。這種出題需要借助于軟件來(lái)做。

第三種是全自動(dòng)出題。這個(gè)肯定是軟件出,所以就不多說(shuō)了。

呃其實(shí)第一個(gè)鏈接里也給了具體的軟件使用說(shuō)明的。不過既然說(shuō)到這里了,那么下面我們就來(lái)列舉一下這些出題軟件。

1.1 JSudoku

這個(gè)軟件可能你不怎么了解,而且網(wǎng)上直接搜索可能找不到正確的軟件。

這個(gè)軟件最突出的功能就是可以自動(dòng)出一些變型數(shù)獨(dú)題。這個(gè)軟件還有豐富的適用于“人可以看的”解題技巧,它不會(huì)用電腦的編程算法的那種不適合人看的技巧來(lái)進(jìn)行解題(當(dāng)然,題目太難了也會(huì)“爆破”)。

這個(gè)軟件比較適合變型數(shù)獨(dú),所以如果喜歡變型數(shù)獨(dú)的話可以推薦下載。要記得是這個(gè)界面,不要下載錯(cuò)了。這個(gè)軟件也比較老了,所以……我不知道網(wǎng)上有沒有下載地址和鏈接……我又沒用某度網(wǎng)盤了,所以就……比較尷尬??

這個(gè)軟件就說(shuō)到這里。

哦對(duì),它是 Java 編程語(yǔ)言寫的,所以你需要先安裝 Java 然后才能用~

1.2 NP Generator

這個(gè)軟件長(zhǎng)這樣:

這個(gè)軟件名字比較長(zhǎng)。Number Place 是數(shù)獨(dú)在美國(guó)等一些英語(yǔ)使用國(guó)家的稱呼(當(dāng)然,也有用 Sudoku 這個(gè)單詞表示數(shù)獨(dú)的)。

數(shù)獨(dú)的名字起源很有意思。數(shù)獨(dú)早期來(lái)自于歐拉,但因?yàn)槟莻€(gè)時(shí)代并沒有很方便的交通,所以國(guó)家和國(guó)家并沒有傳開數(shù)獨(dú)這樣的游戲。直到上個(gè)世紀(jì),數(shù)獨(dú)才廣泛流行(于歐美國(guó)家)。然后傳到亞洲首先是進(jìn)入到日本那一邊。日本有一個(gè)大佬叫鍜治真起(現(xiàn)在廣泛認(rèn)為它是數(shù)獨(dú)之父,因?yàn)樗鼘?duì)數(shù)獨(dú)的貢獻(xiàn)特別大)將數(shù)獨(dú)發(fā)揚(yáng)光大,于是數(shù)獨(dú)才得以有一個(gè)國(guó)際名稱 sudoku,來(lái)自的就是日語(yǔ)“數(shù)獨(dú)”二字的日語(yǔ)讀法。不知道日本是不是喜歡把名字都搞得特別長(zhǎng),比如《未聞花名》的全名……數(shù)獨(dú)在早期取名也特別長(zhǎng):

數(shù)字(すうじ)は獨(dú)身(どくしん)に限る(かぎる)

大概能猜到意思吧?!蔼?dú)身”是獨(dú)立、單獨(dú)、只有一個(gè)之類的這么一個(gè)意思;而“限る”是動(dòng)詞,是限制的意思。所以這個(gè)句子的意思是“數(shù)字具有獨(dú)立(也就是不重復(fù))的限制規(guī)則”。這名字特別長(zhǎng),后來(lái)就被簡(jiǎn)化為“數(shù)字”的“數(shù)”和“獨(dú)身”的“獨(dú)”,所以數(shù)獨(dú)是這么來(lái)的。

不過歐美國(guó)家也還會(huì)使用“填數(shù)字”的這種名稱叫數(shù)獨(dú),就我剛才說(shuō)的 number place。這里的 place 是一個(gè)動(dòng)詞,表示“放置”的意思,不是“地方”哈。

反正總的來(lái)說(shuō)這個(gè)軟件是長(zhǎng)這樣的。

這個(gè)軟件的作用也是出題,不過它更傾向于出標(biāo)準(zhǔn)數(shù)獨(dú)。當(dāng)然,變型數(shù)獨(dú)也支持,但只支持對(duì)角線和鋸齒數(shù)獨(dú)。不過這個(gè)軟件功能厲害之處就在于,它可以自定義數(shù)字和題目提示數(shù)的位置。在一點(diǎn)在別的軟件里是不能做到的。

如果你對(duì)標(biāo)準(zhǔn)數(shù)獨(dú)的一些出題要求比較嚴(yán)格的話,可以用這個(gè)軟件。右下角的多少多少 pt 就是題目的大概難度。因?yàn)檫@個(gè)題目的難度并沒有一個(gè)全球統(tǒng)一的標(biāo)準(zhǔn),所以各個(gè)軟件對(duì)于難度評(píng)估的標(biāo)準(zhǔn)都不大一樣。但是大體上是一致的:使用人類學(xué)習(xí)的那些解題技巧,讓軟件也可以使用它們來(lái)完成解題。然后使用這些解題技巧,讓軟件規(guī)劃出來(lái)一個(gè)難度,題目的難度就取決于這些技巧都用了什么。

反正這個(gè)軟件還不錯(cuò),可以試試。

這個(gè)軟件也要用 Java 環(huán)境。所以你需要安裝 Java 之后才能使用。

1.3 Hodoku

這個(gè)軟件叫 Hodoku,大概長(zhǎng)這樣:

這個(gè)軟件好處在于,它對(duì)分析比較側(cè)重。如果你需要學(xué)習(xí)技巧的話,它可能會(huì)幫你很多的忙。

特別方便。不過,有一個(gè)遺憾是,中文漢化不夠好。

據(jù)說(shuō)是有中文版,但是我特別不推薦去下載。那個(gè)中文版我看了一下,因?yàn)橛行h化的翻譯詞匯,特別是技巧的用詞過于草率,導(dǎo)致了一些翻譯并不是我們學(xué)習(xí)技巧會(huì)用到的詞語(yǔ)。這樣有些誤人子弟。當(dāng)然了,也不是說(shuō)漢化作者本人的問題,畢竟他也是方便各位使用,但是畢竟不夠?qū)I(yè),所以翻譯有些確實(shí)有點(diǎn)草率了。所以我才不推薦使用中文版。英語(yǔ)嘛……雖然看不懂,但是你玩游戲也知道看不懂,為啥你能玩呢?不就是重復(fù)使用一些功能之后就記住了么,這也是一樣的嘛。你不要怕。你怕英語(yǔ),英語(yǔ)就會(huì)變本加厲讓你覺得它的優(yōu)越感十足。

這是這個(gè)軟件。這個(gè)軟件也要用 Java 環(huán)境。

我就搞不懂了現(xiàn)在的人為啥都喜歡用 Java 寫代碼……做窗體程序不應(yīng)該是比如 C++、C# 之類的更合適嗎……當(dāng)然了,現(xiàn)在 C# 都跨平臺(tái)了,Java 寫代碼是為了跨平臺(tái)的話,現(xiàn)在已經(jīng)不適用了。

1.4 Sudoku Explainer

這個(gè)軟件也需要 Java 環(huán)境……噗

這個(gè)軟件長(zhǎng)這樣。下面顯示的就是技巧的信息。當(dāng)然,這個(gè)軟件的顯示文字是我手動(dòng)改了一點(diǎn)源代碼之后讓它顯示成那樣的,不過軟件就長(zhǎng)這樣。下載的時(shí)候照著這個(gè)形狀這樣樣貌去下就行了。

軟件也是比較側(cè)重分析使用的軟件,它提供的功能也比較多,比如單獨(dú)看技巧使用啊,比如出題和分析難度系數(shù)之類的。這個(gè)軟件最不錯(cuò)的功能在于,它可以使用數(shù)獨(dú)里的技巧來(lái)進(jìn)行解題,哪怕再難的題目都可以。數(shù)獨(dú)有一個(gè)技巧叫鏈,它如果復(fù)雜起來(lái),人是找不到的。但是軟件可以通過它的強(qiáng)力算法來(lái)完成找鏈。即使特別長(zhǎng)(甚至長(zhǎng)度達(dá)到幾百)也可以幫你找。不過因?yàn)樗乃惴ㄈ匀挥邢蓿恍┨貏e難的題解題甚至需要兩三個(gè)小時(shí)。這不能怪程序的算法,只能怪題目確實(shí)有些奇怪了。

不過,話說(shuō)回來(lái),這樣的題也不多,一旦出現(xiàn),必屬精品請(qǐng)你繞道。這樣的題目人是無(wú)法邏輯解的,所以不要妄想去用學(xué)過的知識(shí)去破解。

1.5 Color Sudoku

Color Sudoku 長(zhǎng)這樣:

這款軟件也是英語(yǔ)的,不過我漢化過。

這個(gè)軟件的主要功能是出題。不過功能比較輕便,它也不需要你安裝什么 Java 就可以運(yùn)行??梢宰孕忻饕幌?,支持編輯操作。

1.6 為什么我只介紹電腦軟件?手機(jī)軟件呢?

很遺憾的是,我平時(shí)不怎么用手機(jī)……由于辦公環(huán)境的特殊性,我一般只會(huì)在電腦上操作一些東西,手機(jī)純粹就拿來(lái)晚上睡覺看一下 B 站之類的,然后出門買東西給個(gè)錢之類的。我對(duì)手機(jī)的數(shù)獨(dú) app 了解不多。不過,我會(huì)考慮專門出視頻來(lái)評(píng)測(cè)以下數(shù)獨(dú)的手機(jī)、iOS 之類的 app,試試效果和體驗(yàn)什么的。這個(gè)之后后面做了,今天文章就不寫了(主要是現(xiàn)場(chǎng)下載使用來(lái)體驗(yàn)的話時(shí)間不太夠)。

2 數(shù)獨(dú)學(xué)習(xí)網(wǎng)站鏈接

然后推薦以下數(shù)獨(dú)網(wǎng)站,用來(lái)學(xué)習(xí)啊,PK 都可以的網(wǎng)站。

2.1 Hodoku 技巧介紹頁(yè)

http://hodoku.sourceforge.net/en/techniques.php

這個(gè)頁(yè)面是 Hodoku 前面提供的這個(gè)軟件的官方網(wǎng)頁(yè)。它提供了軟件的操作和數(shù)獨(dú)技巧的學(xué)習(xí)參考。主要是參考的部分,截圖就不發(fā)了,可以自行訪問。

全英文……有點(diǎn)頭疼是吧……我也是……但是這網(wǎng)站沒有中文的,只有英語(yǔ)和德語(yǔ)……??

2.2 數(shù)獨(dú)外網(wǎng)論壇

http://forum.enjoysudoku.com/collection-of-solving-techniques-t3315.html

這個(gè)論壇是一個(gè)古老悠久的數(shù)獨(dú)討論論壇。這個(gè)論壇里可以討論你可以學(xué)習(xí)到的所有數(shù)獨(dú)技巧,甚至是你自己發(fā)現(xiàn)的數(shù)獨(dú)技巧,分享做題經(jīng)驗(yàn)啊,甚至軟件都行。

不過是外網(wǎng)的,湊合看看吧。

2.3 維基百科——數(shù)獨(dú)術(shù)語(yǔ)

https://zh.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC%E6%9C%AF%E8%AF%AD

這個(gè)頁(yè)面是我自己寫的。是的,這個(gè)維基百科的數(shù)獨(dú)詞條是我創(chuàng)建的。各位可以通過學(xué)習(xí)數(shù)獨(dú)之余,遇到不懂的不會(huì)的數(shù)獨(dú)的術(shù)語(yǔ)詞匯可以用這個(gè)頁(yè)面來(lái)進(jìn)行參考??赡苡行┰~語(yǔ)比較老了,它們可能需要翻新,這個(gè)咱們以后考慮。

2.4 獨(dú)?數(shù)之道

http://www.sudokufans.org.cn/

這個(gè)網(wǎng)站是 PK 性質(zhì)的網(wǎng)站。你可以在上面注冊(cè)賬號(hào)和朋友參與數(shù)獨(dú)(包括標(biāo)準(zhǔn)和變型數(shù)獨(dú))的游玩 PK,也可以自己一個(gè)人做題來(lái)玩。網(wǎng)站特別豐富,包含很多變型。

唯一的遺憾是,這個(gè)網(wǎng)站的題……有點(diǎn)難……因?yàn)樗穷}庫(kù),是電腦生成的,部分題目可能甚至需要鏈……就離譜(汗

哦對(duì)順帶一提。這個(gè)網(wǎng)站下面有一個(gè)小工具。這個(gè)工具叫“數(shù)數(shù)練習(xí)”。

這個(gè)頁(yè)面雖然比較簡(jiǎn)陋,但是它是用來(lái)測(cè)試你對(duì)唯一余數(shù)技巧的熟練度的。

這個(gè)技巧需要你行、列、宮找出唯一一個(gè)缺失的數(shù)字。考研你的反應(yīng)能力。比如圖上缺少的數(shù)字是 4,你只需要使用鍵盤輸入 4 即可。它是無(wú)盡測(cè)試,你可以自己停止游玩。在每完成一個(gè)題目之后,題目上方都會(huì)提供你的正確數(shù)據(jù)。比如正確率,完成題目數(shù)量,用時(shí)和平均用時(shí)之類的。對(duì)于你的唯一余數(shù)技巧的鍛煉非常有幫助,真的,你要信我,信日葵得永生!

一般來(lái)說(shuō),一個(gè)數(shù)獨(dú)玩家,特別是專業(yè)參與比賽的玩家,唯一余數(shù)可以做到秒看。真的是秒看,它們的平均掃描和確定數(shù)值的結(jié)果的用時(shí)甚至不到 1 秒(0.6 秒左右)。我的速度是 1.6 秒一個(gè)題……你可以練習(xí)一下,估計(jì)就能超越我了

2.5 三思數(shù)獨(dú)

https://www.12634.com/

這個(gè)網(wǎng)站也是一個(gè) PK 和自己做題的網(wǎng)站。網(wǎng)站沒有獨(dú)數(shù)之道的題目類型多,但它好在題庫(kù)是人工驗(yàn)過的,題目難度盡在掌控之中。

2.6 總結(jié)

就推薦這些吧。其它的網(wǎng)站要么要翻墻,要么有點(diǎn)不咋常用。對(duì)于萌新用戶,而且不咋科學(xué)上網(wǎng)的人基本上也不必接觸它們,畢竟太“遙遠(yuǎn)”了:距離遙遠(yuǎn),而且也不夠接地氣。

第五部分 結(jié)語(yǔ)

我總算是花了三個(gè)小時(shí)把這篇文章給寫完了。不知道各位能不能喜歡上數(shù)獨(dú)呢?

數(shù)獨(dú)是一個(gè)大學(xué)問,它不只是數(shù)學(xué)類玩家研究的時(shí)候會(huì)做數(shù)獨(dú)題,就是我們普普通通的老百姓也可以接近數(shù)獨(dú)和喜歡數(shù)獨(dú),我一直都真心歡迎各位入坑數(shù)獨(dú)。


致所有新朋友的一份萬(wàn)字?jǐn)?shù)獨(dú)入門指南的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
固阳县| 乌什县| 宝丰县| 洪洞县| 蓬溪县| 布尔津县| 和静县| 多伦县| 祥云县| 嘉义市| 中牟县| 土默特左旗| 防城港市| 江山市| 陈巴尔虎旗| 浦城县| 万年县| 遵化市| 炎陵县| 旅游| 东莞市| 白山市| 崇左市| 义乌市| 余江县| 禄丰县| 珠海市| 禄劝| 彝良县| 龙门县| 博乐市| 恩施市| 边坝县| 巴东县| 凤庆县| 海丰县| 山丹县| 郯城县| 灌阳县| 江川县| 清水河县|