Базовая рыба

Базовая рыба

Средний

Что такое рыбные шаблоны в судоку?

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

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

Основной принцип: логика принципа Дирихле по строкам и столбцам

Для одной цифры, если вы можете найти 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, поэтому систематический ручной поиск требует терпения.

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

сквирмбаг использует N=5: пять строк, отображаемые на пять столбцов. Оценённый как Уровень 9 (Мастер), он чрезвычайно редко встречается на практике.

У сквирмбаг есть дополнительный медузы в строках и столбцах, не используемых fish-5. Поскольку дополнительный медузы меньше, большинство решателей и многие решающие движки сначала сообщат о медузы, когда доступны оба объяснения. Это делает сквирмбаг более полезным как теоретическое расширение, чем как практическая цель для ручного решения.

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

Как находить шаблоны Fish в головоломке

Шаг 1: Выберите цифру, у которой всё ещё есть несколько нерешённых позиций.

Шаг 2: Отметьте позиции кандидатов по строкам. Для выбранной цифры перечислите, в каких столбцах она встречается в каждой строке. Строки только с 2 или 3 позициями наиболее перспективны.

Шаг 3: Ищите пересечение столбцов. Проверьте, есть ли комбинация из N строк, кандидаты которой охватывают ровно N столбцов.

Шаг 4: Убедитесь, что в столбцах покрытия существуют исключения.

Шаг 5: Повторите для fish на основе столбцов.

Сосредоточьтесь на цифрах, где несколько строк имеют ровно две позиции кандидатов. Строка с двумя кандидатами — это строительный блок шаблонов fish.

Прогрессия сложности шаблонов Fish

X-Крыло: N=2, Уровень 4, Умеренный

меч-рыба: N=3, Уровень 4, Умеренный

медузы: N=4, Уровень 7, Очень сложный

сквирмбаг: N=5, Уровень 9, Мастер

Скачок от меч-рыба (Уровень 4) к медузы (Уровень 7) отражает значительное увеличение сложности для человека-решателя.

Связь с продвинутыми вариантами Fish

Базовые fish — это "без плавников" или "стандартные" fish. Продвинутые варианты включают:

Fish с плавником (Finned Fish): Дополнительный кандидат ("плавник") существует вне ожидаемых столбцов. Варианты с плавником существуют для всех размеров на Уровнях 7-9.

Fish сашими (Sashimi Fish): Fish с плавником, удаление плавника у которого оставило бы скрытая единственная, а не fish. Уровни 7-9.

Fish Franken: Блоки служат определяющими домами наряду со строками и столбцами. Уровни 10-11.

Fish мутант (Mutant Fish): Любая комбинация домов может служить базовыми и покрывающими наборами. Самая общая форма.

Основной принцип -- N домов, ограничивающих цифру N перекрёстными домами -- остаётся неизменным во всех вариантах.

Итог

Базовое семейство рыб -- X-Крыло, меч-рыба, медузы и сквирмбаг -- построено на одном принципе: N строк, ограничивающих цифру N столбцами, подразумевают исключения в этих столбцах. Эти четыре техники масштабируются от доступного X-Крыло до редко встречающегося сквирмбаг и составляют основу для плавниковых рыб, сашими-рыб и Franken-рыб.

Все рыбные шаблоны — это одна и та же техника в разных масштабах. Если вы понимаете, почему работает X-Крыло, вы понимаете, почему работает сквирмбаг.