學習軌道
/
Elixir
Elixir
/
練習
/
殺手數獨助手
殺手數獨助手

殺手數獨助手

中等

說明

你的一位朋友正在學怎麼解殺手數獨(規則如下),卻一直搞不清楚哪些數字能放進同一個籠裡。他們請你寫個小程式,列出指定籠的所有有效組合,以及任何會影響該籠的限制條件。

為了讓程式的輸出容易閱讀,它回傳的組合必須經過排序。

殺手數獨規則

  • 標準數獨規則同樣適用。
  • 一個籠裡的數字(通常以虛線標示)加起來,會等於籠角落標示的那個小數字。
  • 同一個籠裡,每個數字只能出現一次。

想了解更詳細的說明,可以參考這份指南。

範例 1:只有 1 種可能組合的籠

在一個總和為 7、由 3 個數字組成的籠裡,只有一種有效組合:124。

  • 1 + 2 + 4 = 7
  • 其他任何加起來等於 7 的組合,例如 232,都會違反籠內數字不得重複的規則。

數獨盤面,其中有三個殺手籠被標示為同一組。
第一個殺手籠位於盤面左上角的 3×3 宮中。
該宮中間的那一直行構成這個籠,從上到下的各格依序是:第一格有 1 和鉛筆記號 7,表示籠的總和為 7;第二格有 2;第三格有 5。
這些數字以紅色標示,表示有錯誤。
第二個殺手籠位於盤面中央的 3×3 宮中。
該宮中間的那一直行構成這個籠,從上到下的各格依序是:第一格有 1 和鉛筆記號 7,表示籠的總和為 7;第二格有 2;第三格有 4。
這個籠裡的數字都沒有被標紅,因此沒有任何錯誤。
第三個殺手籠沿著盤面中央 3×3 宮的外角分布。
它由以下三格組成:籠的左上格有 2,以紅色標示,籠的總和為 7。
籠的右上格有 3。
籠的右下格有 2,以紅色標示。其餘格子都是空的。

範例 2:有多種組合的籠

在一個總和為 10、由 2 個數字組成的籠裡,有 4 種可能的組合:

  • 19
  • 28
  • 37
  • 46

數獨盤面,除了中間的直行(第 5 直行)有 8 格填了數字之外,其他格子都是空的。
每兩格相鄰的橫列構成一個殺手籠,並被標示為同一組。
從上到下:第一組是值為 1 的格子與標示籠總和 10 的鉛筆記號,以及值為 9 的格子。
第二組是值為 2 的格子與鉛筆記號 10,以及值為 8 的格子。
第三組是值為 3 的格子與鉛筆記號 10,以及值為 7 的格子。
第四組是值為 4 的格子與鉛筆記號 10,以及值為 6 的格子。
這一行的最後一格是空的。

範例 3:受限制、有多種組合的籠

在一個總和為 10、由 2 個數字組成的籠裡,如果該直行已經有 1 和 4,就只有 2 種可能的組合:

  • 28
  • 37

根據標準數獨規則,由於該直行已有 1 和 4,所以 19 和 46 都不可能。

數獨盤面,除了中間的直行(第 5 直行)有 8 格填了數字之外,其他格子都是空的。
第一橫列有 4,第二橫列是空的,第三橫列有 1。
那個 1 以紅色標示,表示有錯誤。
直行中最後 6 格構成兩格一組的殺手籠。
從上到下:第一組是值為 2 的格子與標示籠總和 10 的鉛筆記號,以及值為 8 的格子。
第二組是值為 3 的格子與鉛筆記號 10,以及值為 7 的格子。
第三組是值為 1(以紅色標示)的格子與鉛筆記號 10,以及值為 9 的格子。

自己試試看

如果你想試試比較好上手的殺手數獨,可以玩玩 Clover 設計的這道謎題,它曾在 2021 年 6 月 21 日由 Mark Goodliffe 在 Cracking The Cryptic 中介紹。

你也可以在許多報紙,以及數獨 App、書籍和網站上,找到各種難度的殺手數獨。

致謝

上方的螢幕截圖是用 F-Puzzles.com 製作的,這是 Eric Fox 開發的謎題設計工具。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Elixir Exercism

準備好開始 殺手數獨助手 了嗎?

註冊 Exercism,透過 58 個概念168 個練習 和真人引導來學習並精通 Elixir,全部免費。