Базова риба

Базова риба

Середній

Що таке рибні візерунки в судоку?

Рибні візерунки — це сімейство технік для однієї цифри, які використовують те, як кандидати цифри розташовуються в рядках і стовпцях. Кожен рибний візерунок працює однаково: ви знаходите набір рядків (або стовпців), де кандидати певної цифри обмежені певною кількістю стовпців (або рядків), а потім усуваєте кандидатів в інших місцях.

Кожен рибний візерунок зосереджується рівно на одній цифрі за раз. Ви дивитеся на розподіл однієї цифри по всій сітці. Усі чотири базові риби мають один спільний алгоритм. Вони відрізняються лише розміром.

Основний принцип: логіка принципу Діріхле для рядків і стовпців

Для однієї цифри, якщо ви можете знайти N рядків, де кандидати цієї цифри обмежені не більше ніж N стовпцями, то ці стовпці можуть отримати цю цифру лише з вибраних рядків. Якщо об'єднання містить менше ніж N стовпців, рядки вже містять суперечність, тож дійсна риба фактично використовує рівно N стовпців покриття.

Кожен із N рядків має розмістити цифру рівно один раз. Цифра в кожному рядку має потрапити в один зі стовпців покриття. Оскільки є N рядків і N придатних стовпців покриття, стовпці покриття повністю заповнюються базовими рядками. Будь-який кандидат для цієї цифри поза базовими рядками, але всередині стовпців покриття, можна видалити.

Та сама логіка працює у зворотному напрямку, коли базою є стовпці, а покриттям — рядки. Під час сканування слід перевіряти обидва напрямки.

X-крило: рибний візерунок 2x2

X-крило використовує N=2: два рядки, що відображаються на два стовпці. X-крило для цифри виникає, коли рівно два рядки містять цю цифру як кандидата в тих самих двох стовпцях. Чотири клітинки утворюють прямокутник. Цифру можна усунути з усіх інших клітинок у цих двох стовпцях.

Той самий візерунок працює й на основі стовпців. X-крило класифікується за складністю як рівень 4 (помірний).

меч-риба: рибний візерунок 3x3

меч-риба розширює рибну логіку до N=3: три рядки, що відображаються на три стовпці. Не кожен рядок повинен мати кандидатів у всіх трьох стовпцях. Вимога лише в тому, щоб об'єднання всіх стовпців-кандидатів налічувало рівно три.

меч-риба оцінюється як рівень 4 (помірний), так само як і X-крило. Основна логіка ідентична.

медузи: рибний візерунок 4x4

медузи використовує N=4: чотири рядки, що відображаються на чотири стовпці. Окремі рядки можуть мати кандидатів лише у двох, трьох або чотирьох із чотирьох стовпців.

медузи класифікується як рівень 7 (дуже складно). Він трапляється нечасто, бо конкретне вирівнювання чотирьох рядків рівно на чотири стовпці є незвичним. Існує 126 способів вибрати 4 рядки з 9, тож систематичний ручний пошук потребує терпіння.

сквірмбаг: шаблон риби 5x5

сквірмбаг використовує N=5: п'ять рядків, що відображаються на п'ять стовпців. Оцінений як рівень 9 (майстер), він надзвичайно рідкісний на практиці.

сквірмбаг має комплементарний медузи у рядках і стовпцях, не використаних 5-рибою. Оскільки комплементарний медузи менший, більшість розв'язувачів і багато рушіїв розв'язування повідомлять спершу медузи, коли доступні обидва пояснення. Це робить сквірмбаг кориснішим як теоретичне розширення, ніж як практична мета для ручного розв'язування.

Цей принцип комплементарності поширюється далі: 6-риба доповнює меч-риба, 7-риба доповнює X-крило, а 8-риба доповнює прихована єдина. N=5 — практичний максимум для названих базових риб.

Як знаходити шаблони риб у головоломці

Крок 1: виберіть цифру, яка все ще має кілька нерозв'язаних позицій.

Крок 2: зіставте позиції кандидатів за рядками. Для вибраної цифри перелічіть, у яких стовпцях вона міститься в кожному рядку. Рядки лише з 2 або 3 позиціями є найперспективнішими.

Крок 3: шукайте перекриття стовпців. Перевірте, чи будь-яка комбінація N рядків має кандидатів, що охоплюють рівно N стовпців.

Крок 4: переконайтеся, що в стовпцях покриття існують виключення.

Крок 5: повторіть для риб на основі стовпців.

Зосередьтеся на цифрах, де кілька рядків мають рівно дві позиції кандидатів. Рядок із двома кандидатами — це будівельний блок шаблонів риб.

Прогресія складності шаблонів риб

X-крило: N=2, рівень 4, помірно

меч-риба: N=3, рівень 4, помірно

медузи: N=4, рівень 7, дуже складно

сквірмбаг: N=5, рівень 9, майстер

Стрибок від меч-риба (рівень 4) до медузи (рівень 7) відображає значне зростання складності для людини-розв'язувача.

Зв'язок із розширеними варіантами риб

Базові риби — це «безплавцеві» або «стандартні» риби. Розширені варіанти включають:

Плавцева риба: додатковий кандидат («плавець») існує поза очікуваними стовпцями. Плавцеві варіанти існують для всіх розмірів на рівнях 7-9.

Сашимі-риба: плавцева риба, у якій видалення плавця залишило б прихована єдина, а не рибу. Рівні 7-9.

Франкен-риба: блоки слугують визначальними домами поряд із рядками та стовпцями. Рівні 10-11.

Мутант-риба: будь-яка комбінація домів може слугувати базовими та покривними наборами. Найзагальніша форма.

Основний принцип — N домів, що обмежують цифру N перехресними домами — залишається незмінним для всіх варіантів.

Підсумок

Базове сімейство риб -- X-крило, меч-риба, медузи та сквірмбаг -- побудоване на одному принципі: N рядків, що обмежують цифру N стовпцями, означає вилучення в цих стовпцях. Ці чотири техніки масштабуються від доступного X-крило до рідко вживаного сквірмбаг і формують основу для плавникових риб, сашимі-риб і Franken-риб.

Усі рибні візерунки -- це та сама техніка в різних масштабах. Якщо ви розумієте, чому працює X-крило, ви розумієте, чому працює сквірмбаг.