Базовая рыба
Базовая рыба
Что такое рыбные шаблоны в судоку?
Рыбные шаблоны — это семейство техник для одной цифры, которые используют то, как кандидаты цифры выстраиваются по строкам и столбцам. Каждый рыбный шаблон работает одинаково: вы находите набор строк (или столбцов), в которых кандидаты определённой цифры ограничены ограниченным числом столбцов (или строк), а затем исключаете кандидатов в других местах.
Каждый рыбный шаблон сосредоточен ровно на одной цифре за раз. Вы смотрите на распределение одной цифры по всей сетке. Все четыре базовые рыбы используют один и тот же основной алгоритм. Они различаются только размером.
Основной принцип: логика принципа Дирихле по строкам и столбцам
Для одной цифры, если вы можете найти 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-Крыло, вы понимаете, почему работает сквирмбаг.