Как стать автором
Поиск
Написать публикацию
Обновить
336
276
Валерий Черепенников @vvvphoenix

Vice President NNRC, Советник Губернатора НО

Отправить сообщение

Винтик, Шпунтик, включения и исключения.

Некоторое время назад я опубликовал задачу, в которой требовалось посчитать число раскрасок грани кубика Рубика в 3 цвета определенным способом. К этой задаче сводится тернарный кейс Винтика и Шпунтика. Напомню,

у нас есть грань размера 3x3 и нам надо покрасить 9 ячеек в три цвета. 3 - в красный, 3 - в желтый, и 3 - в зеленый. Сколько существует раскрасок при которых ни одна строка и ни один столбец не закрашены одним цветом?

Картинка ниже дает примеры возможных и невозможных раскрасок

Задачку эту я решил, но решение мне не нравилось, потому что по сути оно является "ручным перебором" возможных раскрасок. И вот недавно, читая статью Артема, я сообразил, что все это можно описать в терминах "формулы включений - исключений". Для этого из полного числа раскрасок в три цвета нам надо исключить все "невозможные". Для это нужно просто аккуратно считать число раскрасок и чередовать знаки. Через к в дальнейшем обозначается номер шага, через n - размерность пространства. через В нашем случае она равна 3.

  1. Шаг 0. Знак +. Полное число раскрасок 9 ячеек в три цвета.

    C_0 =+C(9,3,3,3) = +\frac{9!}{3!3!3!}=+1680

  2. Шаг 1. Знак -. Число раскрасок, при которых одна строка или один столбец закрашен одним цветом. Строки и столбы у нас "равноправны". Таким образом, мы получаем множитель 2, исходя из геометрии (а точнее просто размерности) задачи. Теперь, допустим, мы закрашиваем одну строчку(столбец) каким то одним цветом (допустим красным). Выбор цвета(1 из 3) дает нам С(3,1)=3 варианта. Выбор позиции дает еще 3 варианта. Запишем это как n!/(n-k)! Теперь нам нужно покрасить еще 6 (n(n-1)) ячеек в два цвета (желтый и зеленый). Что дает С(6,3) =  6!/(3!3!)В итоге,

    C_1 =-2*C(3,1)*3!/(3-1)!* C(6,3) = -2*3*3*\frac{6!}{3!3!}=-360

  3. Шаг 3. Знак +. Когда у нас одновременно есть две строки или два столбца закрашенные одним цветом. Аналогично, 2- множитель размерности. Теперь нам надо выбрать 2 из 3 трех цветов. Получим, С(3,2) =3. Геометрическое размещение дает множитель 3!/(3-2)!. Ну и далее нам останется закрасить оставшиеся три ячейки оставшимся цветом. Что дает нам ровно С(3,3) = 1 вариант. Получаем,

    C_2 =+2*C(3,2)*3!/(3-2)!*C(3,3) = +2*3*6*1=+36

  4. Шаг 4. Знак -. Все три столбца или строки закрашены одним цветом. 2 - геометрический множитель. С(3,3) = 1 - выбор цветов. 3!/(3-3)! = 6 количество размещений. Итак,

    C_3 =-2*n! = -2*3!=-12

    А теперь соберем все вместе и получим.

    C = \frac{(n^2)!}{(n!)^n} +2*\sum_{k=1}^n(-1)^kC(n,k)\frac{n!}{(n-k)!}\frac{(n(n-k))!}{(n!)^{n-k}} (*)

Или для нашего случая n = 3

C = C_0+C_1+C_2+C_3=1680-360+36-12 = 1344

И это правильный ответ. При домножении на 2^3 =8дает 10752 - решение задачи Винтика и Шпунтика в тернарном случае.

Формулу (*) наверняка можно как то упрощать, но я не буду сейчас этим заниматься. Скажу лишь, что она работает для любых n. В частности, если нам нужно посчитать раскраски квадрата 4x4 в 4 цвета формула* дает.

C = C_0+C_1+C_2+C_3+C_4=63063000-1108800+10080-192+48=61964136

В кватернарном случае Винтика и Шпунтика дело обстоит сложнее. Появляется дополнительная размерность и исключений становится больше. Однако, достоинством формулы (*) является относительное малое количество слагаемых (пусть и более сложного вида) по сравнению с тем, что предложил Артем.

Я не стал писать полноценную статью здесь и решил ограничиться форматом поста. Моей задачей было показать идею. Надеюсь, она стимулирует применить этот подход к кватернарному случаю Винтика и Шпунтика. Так что дерзайте. Ведь челлендж наш продолжается.

Теги:
+19
Комментарии1

Подводя промежуточные итоги

Ареопаг челленджа имени Винтика и Шпунтика в лице @qbertych и вашего покорного, посовещавшись, принял решение выплатить @ripatti половину призового фонда конкурса (25000р). Артем опубликовал две замечательные статьи:

Винтик и Шпунтик, часть 1: формула включений-исключений

Винтик и Шпунтик, часть 2: гиперкубы, шляпы и фартуки

Он не только расширил постановку задачи, но и сумел ближе всех подобраться к решению кватернарного случая. Однако, само решение до сих пор неизвестно, и челлендж продолжается. На кону вторая половина призового фонда (еще 25 штук). Каждый может попробовать свои силы.

Теги:
Всего голосов 11: ↑11 и ↓0+16
Комментарии0

Винтик, Шпунтик и Кубик Рубика

Я давно подозревал, что между задачей про Винтика и Шпунтика и кубиком Рубика есть определенная связь. И вот только сейчас придумал простую аналогию. Представьте, что у нас есть грань размера 3x3 и нам надо покрасить 9 ячеек в три цвета. 3 - в красный, 3 - в желтый, и 3 - в зеленый. Сколько существует раскрасок при которых ни одна строка и ни один столбец не закрашены одним цветом?

Картинка ниже дает примеры возможных и невозможных раскрасок

У задачки есть три уровня сложности

  1. Написать код, который считает число возможных раскрасок.

  2. Посчитать то же самое число аналитически (то есть "на бумажке"🧐)

  3. Очевидно, что задача обладает некоторым набором симметрий. Иными словами перестановка строк (эта группа изоморфна S3) переводит решение в решение. То же самое с перестановкой столбцов (тоже S3). Также "перекрашивание" (красные в желтые, желтые в зеленые и тп) дает еще одно S3. Ну и наконец транспонирование матрицы или поворот на 900 (2700) также переводит решение в решение. Вопрос "со звездочкой" - сколько существует орбит решений относительно действия этой группы?

    Маленькая подсказка - можно воспользоваться теоремой Редфилда-Пойа. Но окончательного ответа я с ее помощью получить не смог...😒

Теги:
Всего голосов 7: ↑7 и ↓0+12
Комментарии0

Информация

В рейтинге
33-й
Откуда
Нижний Новгород, Нижегородская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность