這天,tree 又在滑奇怪的網站,看奇怪的東西了。
那是一個有好多好多數學科展的網站,因為他想看看今年會不會有主題是自己看得懂的呢~
忽然,他看到了—「以毒攻獨 - 邏輯型數獨解題及出題程式」。
既然是程式,身為程設班 $10^{th}$ 進階教學的 tree 當然要想盡辦法了解這個主題啊!!
(話說為甚麼這個主題是數學類)
那個主題是說數獨有兩種解法,一個是一格一格代數字並檢查數獨合理性的暴力解,另一種是依靠邏輯,慢慢把每格可能的數刪去的邏輯解。
跟科展作者連絡後,我發現那個邏輯解程式將近1000行...
但是相對暴力解就少得多了!才100行!少了9倍!
那麼就請各位試著刻出暴力解程式吧,大家加油!
能刻出來的就是電神!
(本題已經過作者同意,可以抄他們的題目作為本題標題)
第一行有一數 $n$,代表接下來有 $n$ 個 $9\times 9$ 的數獨。
從第二行開始,每行有 $9$ 個以空白隔開的數字,每 $9$ 行成一個數獨題目。
在這些給定數獨題中,若該格非 $0$,則該格就是數獨上的給定數字,而 $0$ 即相當於數獨題中的待填空格。
對每一個數獨,輸出 $9$ 行數獨答案,每行 $9$ 個數字,同行數字以空白隔開。
(保證只有唯一解,且數獨限填 $1$ ~ $9$ 的整數)
1 0 9 0 8 6 5 2 0 0 5 4 2 3 9 1 7 8 6 3 8 0 2 0 0 0 9 5 6 3 9 0 7 2 5 4 0 4 2 7 0 5 0 3 6 0 0 0 5 4 0 6 0 0 0 9 7 8 0 1 0 0 5 0 0 0 0 0 2 4 0 7 9 0 5 0 7 0 9 6 1 0
7 9 1 8 6 5 2 3 4 5 4 2 3 9 1 7 8 6 3 8 6 2 4 7 1 9 5 6 3 9 1 7 2 5 4 8 4 2 7 9 5 8 3 6 1 8 1 5 4 3 6 9 2 7 9 7 8 6 1 3 4 5 2 1 6 3 5 2 4 8 7 9 2 5 4 7 8 9 6 1 3
演算法叫 $DFS$,有興趣的同學可以查查看。
我知道複雜度看起來很爛...但我保證優化一下 $DFS$ 就會過!
$9\times 9$ 數獨規則:
(1) 每行、列皆會出現 $1$ ~ $9$ 各一次。
(2) 由上到下,每三列分割一次;由左到右,每三行再分割一次,可以得到 $9$ 大區塊,其中每區塊皆會出現 $1$ ~ $9$ 各一次。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |