裸subset
數獨中的裸subset是什麼?
裸subset是一組N個單元格,位於同一個屋內(行、列或區塊)中,其合併候選數字恰好包含N個不同的數字。由於這N個數字必須填入這N個單元格,因此它們不能出現在該屋內的任何其他單元格中。這讓你可以安全地從剩餘單元格中刪除這些數字。 「裸」這個詞的意思是候選數字完全可見且暴露無遺。你不需要尋找隱藏在其他候選數字中的數字。這個子集會通過這些單元格中的鉛筆筆記明確地宣告自身。 有四種裸subset技巧,每種對應一個可能的組合大小: - 裸單(N=1)-- 一個單元格,只有一個候選數字 - 裸雙(N=2)-- 兩個單元格,其合併候選數字恰好為兩個數字 - 裸三數(N=3)-- 三個單元格,其合併候選數字恰好為三個數字 - 裸四數(N=4)-- 四個單元格,其合併候選數字恰好為四個數字 這四種技巧構成一個家族。它們共享相同的基礎邏輯,僅在涉及的單元格數量上有所不同。一旦你理解了核心原理,較大的子集就會成為較簡單技巧的自然延伸。
核心原理:裸subset 為何有效
裸subset背後的邏輯基於一個基本的計數論證,有時稱為鴿巢原理。用白話來說:如果你有N個空位,且恰好有N個項目要填入,每個項目只會佔用一個空位,其他項目無法佔用這些空位。 考慮一個有九個格子的列。每個未解決的單元格都有一組候選數字,也就是還能合法填入該單元格的筆記。假設你發現該列中有兩個格子,它們的候選數字都來自同一組兩個數字,例如{4, 6}。其中一個格子必定是4,另一個必定是6。沒有其他可能的排列方式。這意味著該列中其他任何單元格都不能再包含4或6,因為這兩個數字已被這兩個格子完全佔用。 同樣的邏輯可以擴展。三個格子的候選數字總共恰好是三個數字,這三個數字就必須被鎖定在這三個格子中。四個格子的候選數字總共恰好是四個數字,這四個數字就必須被鎖定在這四個格子中。在每個單元格中,被鎖定的數字都可以從該共同區域的所有其他格子中刪除。 這個原則無論該區域是列、行或3x3方塊都完全適用。唯一的要求是這N個格子必須屬於同一個區域。
裸單:數獨 解題的基礎
一個 裸單 是最簡單的裸集合。當一個 單元格 的筆記中只剩下一個候選數字時,就會出現這種情況。由於只有一個數字可以合法地填入該 單元格,因此該數字就是該 單元格 的解。 每一個 數獨 求解者,無論是人類還是演算法,都依賴裸單數。這是消除鏈條的最後一步:在行、列和宮的全部限制條件排除了不可能的數字後,最後剩下的候選數字就是答案。 要找到一個 裸單,必須仔細追蹤每個 單元格 的筆記。一個 單元格 最初最多有九個候選數字。隨著你在棋盤上其他位置填入數字,候選數字會被逐一排除: - 如果某個數字出現在同一行,就從該 單元格 的候選數字中刪除。 - 如果某個數字出現在同一列,就從該 單元格 的候選數字中刪除。 - 如果某個數字出現在同一 3x3 宮內,就從該 單元格 的候選數字中刪除。 當這些排除過程使某個 單元格 只剩一個候選數字時,你就找到了一個 裸單。 考慮一個部分解出的謎題中的 單元格 R5C3。行、列和宮的限制條件排除了以下數字: - 第 5 行已包含:1, 3, 5, 8 - 第 3 列已包含:2, 6, 9 - 第 4 宮(中左宮)已包含:7 合起來,數字 1, 2, 3, 5, 6, 7, 8 和 9 都已被排除。唯一剩下的候選數字是 4。因此 單元格 R5C3 必須是 4。這就是一個 裸單。 在每次移動後,應首先檢查裸單數。每次你填入一個數字,可能會使鄰近的格子減少為單一候選數。在較簡單的謎題中,裸單數的連鎖反應可以解決棋盤上的大部分區域,而無需使用其他技巧。即使在較難的謎題中,裸單數也能在更進階的技巧排除候選數後,清理棋盤。
裸雙: 兩個方格,兩個候選數,強力排除
當同一個屋內的兩個單元格各自只包含完全相同的兩個候選數字且沒有其他候選數字時,就會出現裸雙。由於這兩個數字必定會出現在這兩個單元格中,因此可以從該屋內的所有其他單元格中刪除這兩個數字。 裸雙數是常見的中級數獨策略之一。它們經常出現,並通過移除阻礙其他技巧的候選數字,常常能帶來顯著的進展。 假設第1行中的兩個單元格都只包含候選數字{4, 6}: - R1C2 的候選數字為:{4, 6} - R1C7 的候選數字為:{4, 6} 其中一個單元格會是4,另一個會是6。目前我們尚不清楚哪個是哪個,但我們確信4和6會被這兩個單元格完全佔用。因此,第1行中其他任何單元格都不能再包含4或6。 如果 R1C4 的候選數字為 {3, 4, 6, 9},則可透過移除4和6,簡化為 {3, 9}。如果 R1C8 的候選數字為 {2, 6},則可簡化為 {2}。這種簡化為單一候選數字的現象本身即為一個裸單,可立即解決該單元格。 在每個屋內掃描只包含兩個筆記的單元格。當你在同一屋內發現兩個單元格具有完全相同的兩個候選數字集合時,你就找到了一個裸雙。由於僅有兩個筆記的單元格在視覺上非常顯眼,裸雙數是中級技巧中最容易發現的一種。 一個有用的習慣:每次你注意到一個單元格只包含兩個候選數字時,立即檢查同一行、同一列或同一區塊中是否有其他單元格也包含相同的數字對。
裸三數:三個單元格,三個候選數,一個微妙的轉折
當三個在同一個屋內的格子,其候選數字完全來自同一組恰好三個數字時,就會出現一個裸三數。這三個格子中所有候選數字的總集合,恰好包含三個不同的數字。 這裡有一個關鍵洞察,會讓許多解題者感到意外:每個單獨的單元格並不需要包含全部三個數字。一個有效的裸三數可以包含僅有兩個數字的格子。真正重要的是,這三個格子中所有候選數字的總並集,恰好為三個不同的數值。 許多玩家先學會隱藏對(naked pair),然後便假設隱藏三數組(naked triple)必須是三個格子都包含相同的三個候選數字,例如三個格子都為{1, 3, 7}。雖然這是一種有效的裸三數形式,但並非唯一形式,也非最常見的形式。 考慮第5列中的三個格子: - R2C5: {1, 3} - R4C5: {1, 7} - R8C5: {3, 7} 它們的合併候選數字為{1, 3, 7},恰好是三個數字,三個格子。這是一個有效的裸三數,即使沒有任何單一的單元格包含全部三個數字。 邏輯與隱藏對相同。這三個數字必須以某種順序填入這三個格子。其中一個單元格會填1,一個填3,一個填7。因此,1、3和7可以從第5列中其他所有單元格中刪除。 首先找出具有兩個或三個候選數字的格子。在某個屋內,若發現三個格子的合併候選數字恰好形成三個數字的集合,則你便找到了一個裸三數。 實用方法如下: 1. 在每個屋內,列出所有尚未解出且候選數字不超過三個的格子。 2. 選取其中任意三個這樣的格子。 3. 取它們候選數字的並集。若並集恰好包含三個數字,則為一個裸三數。 由於可能存在多種組合,隱藏三數組需要比隱藏對更仔細的掃描。這正是它被視為較高難度技巧的原因。
裸四數: 四格四候選數,最大複雜度
一個 裸四數 是最常見的裸四元組。當一個屋內的四個格子,其候選數字完全來自同一組恰好四個數字時,就會出現這種情況。與三元組一樣,單個格子不需要包含全部四個數字。關鍵條件是,這四個格子中所有候選數字的總集,恰好等於四個不同的數值。 邏輯與較小的裸子集相同。四個數字必須填入四個格子,這些數字在該屋內的其他任何位置都不能出現。 裸四元組很少透過簡單掃描發現。由於涉及四個格子和四個數字,需要檢查的組合數量非常多。在一個有六個未解決格子的屋內,選擇其中四個的方式共有15種。逐一在腦中驗證這些組合非常費力。 大多數解題者發現裸四元組,是透過系統性檢查,或先察覺剩餘格子形成對應的隱藏子集。 儘管裸四元組較為罕見,但在實際謎題中確實會出現,特別是在中等至困難難度的題目中。掌握此技巧,能確保你在較簡單技巧用盡後不會卡住。
如何識別裸子集:實用掃描技巧
有效尋找裸集合需要有系統的方法,而不是隨機掃描。以下是資深解題者使用的技巧: 從候選數較少的格子開始:候選數較少的格子更有可能參與裸集合。一個有兩個候選數的格子可以是對、三連或四連的一部分。一個有五個候選數的格子較不實用,因為它會導致合集中的數字太多。先掃描每個屋內有兩個候選數的格子。檢查是否有匹配的對。然後再一起查看有兩個或三個候選數的格子,以找出三連。 按屋逐一處理:選擇一個行、列或宮,並一起檢視其中所有未解的格子。列出它們的候選數。尋找候選數重疊於小範圍數字池的群組。 使用計數驗證:對於任何你懷疑可能形成裸集合的N個格子,統計它們合起來的相異數字數量。如果數量等於N,你就找到了裸集合。如果數量超過N,則這些格子不構成裸集合。 每次消除後都要檢查:當其他技巧從一個單元格中移除候選數時,重新檢查該單元格所屬的屋。消除可能產生了先前未察覺的新裸集合。許多裸對是早期消除的副產品。 尋找補集:如果一個屋有K個未解格子,且你懷疑存在裸集合但無法直接找出,可嘗試查看補集。若找到大小為M的隱藏集合,則自動表示存在大小為K - M的裸集合。
裸集合與隱藏集合之間的關係
裸集合與隱藏集合是同一枚硬幣的兩面。理解它們的對偶性,能加深你對數獨邏輯的掌握,並有助於發現你可能錯過的模式。 隱藏集合發生在一個屋內,N個數字僅出現在N個特定的格子中。這些數字是「隱藏」的,因為這些格子可能還包含其他候選數。消除步驟會從這N個格子中移除額外的候選數,只留下隱藏的數字。 在一個有K個未解決格子的屋內,如果存在一個大小為N的裸集合,則自動存在一個大小為K - N的隱藏集合。這兩個集合是互補的:它們將未解決的格子與剩餘的數字分為兩個不重疊的群組。 例如,考慮一個有6個未解決格子的行。如果其中兩個格子形成一個裸雙,則剩下的四個格子會形成一個隱藏四數(或等價地,這四個格子排除的數字中存在一個裸四數)。你可以找到其中任一個,並執行相應的消除。 這種對偶性意味著你有兩條通往相同消除結果的路徑。如果一個屋內有很多未解決格子,一個小的裸集合(對或三重)比一個大的隱藏集合更容易察覺。相反地,如果一個屋內只有很少的未解決格子,一個隱藏數對可能比尋找其互補的裸四數更容易。 經驗豐富的解題者會根據實際情況,在裸集合與隱藏集合的觀點之間切換。能夠看到兩面,能為你帶來顯著優勢。
難度進階:從初學者到高級
四種隱藏子集技巧涵蓋多個難度層級,反映隨著群組大小增加,找出它們的難度也隨之上升: 裸單 (N=1):難度 2,簡單 裸雙 (N=2):難度 3,簡單 裸三數 (N=3):難度 4,中等 裸四數 (N=4):難度 5,挑戰 難度提升並非來自邏輯本身,因為所有 單元格 的邏輯完全相同,而是來自搜尋的複雜度: 裸單:你只需檢查一個 單元格。如果它只有一個候選數,就完成。無需進行組合搜尋。 裸雙:你需要找出兩個具有相同候選數的格子。在一個有六個未解決格子的宮內,共有 15 種可能的組合需檢查。但由於你尋找的是恰好有兩個相同候選數的格子,視覺模式非常明顯,容易辨識。 裸三數:你需要找出三個格子,其合併候選數總共為三個數字。在一個有六個未解決格子的宮內,共有 20 種可能的三元組。搜尋更困難,因為這些格子不需要擁有完全相同的候選數集合。 裸四數:你需要從可能許多未解決格子中找出四個格子。組合數量增加,四個數字的聯合更難在腦中計算。大多數四元組是透過系統性候選數統計或察覺其補集 隱藏數對 來發現。 謎題難度評級通常取決於解題所需的技巧。一個僅需裸單數和裸對的謎題被評為簡單。需要裸三數的謎題進入中等範疇。需要 裸四數 的謎題至少屬於挑戰級。
常見錯誤及如何避免
錯誤1:預期所有格子都包含所有數字 裸三元組和四元組最常見的錯誤是假設子集中的每個單元格都必須包含全部N個數字。這是錯誤的。一個包含格子{1,3}、{1,7}和{3,7}的裸三數是完全有效的,即使沒有任何單元格同時包含1、3和7。 如何避免:始終檢查候選數字的總並集,而不是單獨的格子。統計組內所有格子中出現的不同數字總數。如果數量等於格子數量,則無論數字如何分配,都是一個裸子集。 錯誤2:混淆裸子集與隱藏子集 一個裸雙有N個格子,其候選數字僅限於N個數字。一個隱藏數對則有N個數字,其出現位置僅限於N個格子,但這些格子可能還包含額外的候選數字。 在一個裸雙中,你從該屋內其他格子中刪除該對數字。在一個隱藏數對中,你從該對自身格子中刪除非配對數字。 如何避免:問自己:「我是在觀察候選數字受限的格子(裸)?還是數字位置受限的數字(隱)?」限制的方向決定你找到的是哪種子集。 錯誤3:從錯誤的格子中刪除數字 當你在格子R1C2和R1C7中發現一個裸雙{4,6}時,你應從第1行其他格子中刪除4和6。你不需要從R1C2和R1C7本身刪除其他候選數字。裸雙的候選數字在子集自身格子中保持不變。 如何避免:記住規則:裸子集從子集外的格子中刪除其數字。隱藏子集則從子集內的格子中刪除非子集數字。 錯誤4:忽略所有共用屋 兩個格子可能共用多個屋。例如,R1C1和R1C3同時共用第1行和第1宮。如果它們形成一個裸雙,你就可以從第1行其他格子中,以及從第1宮其他格子中刪除該對數字。不要只局限於一個屋。 如何避免:每當發現一個裸子集時,檢查該子集所有格子共用哪些屋。在每個共用屋中執行刪除操作。
在解題流程中何時使用裸subset
裸subset應按從最小到最大的順序檢查: 1. 首先檢查裸單一。每次放置後,掃描新的裸單一。它們是免費且立即的。 2. 其次檢查裸對。當不再有裸單一時,掃描每一列、每一行和每一個宮中的裸對。這是最常見的中級技巧,經常能解出更多的裸單一。 3. 第三檢查裸三。當對無法滿足時,擴大搜尋範圍至三元組。專注於幾個單元格有兩個或三個候選數的宮。 4. 最後檢查裸四。只有在較小的subset和其他技巧都已耗盡時,才搜尋四元組。由於其難度,建議先檢查隱藏對或隱藏三,因為它們可能更容易找到,並透過對偶原理揭示相同資訊。 遵循此進程,您會先應用最簡單且最有效的技巧,節省心理負荷,直到真正需要時才動用。
摘要
裸subset是一組四種數獨技巧,它們由一個簡單優雅的原則統一:在一個屋內有N個單元格,其合併候選數恰好為N個,則這些數字被鎖定在這些單元格中,從而可以將它們從該屋內的所有其他單元格中消除。 從能直接解決單元格的簡單裸單,到清除候選數的裸對和裸三元組,再到需要仔細系統搜尋的難得裸四數,這些技巧構成了邏輯數獨解題的骨幹。掌握它們能為您提供可靠工具,適用於各難度級別的謎題,並為進一步學習更進階的策略(如隱藏subset、魚形模式和鏈)奠定基礎。