Как стать автором
Обновить

Как я решал задачу 2025 года. Часть 2. Анализ интересных закономерностей

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.3K

В продолжение части 1 привожу анализ заполнений квадрата со стороной 45 квадратиками размера от 1 до 9 (1x1 - 1 шт., 2x2 - 2 шт., 3x3 - 3 шт., ..., 9x9 - 9 шт.).

Начнём с простого. Несложно показать, что квадратик размера 1 не может стоять у границы и даже на расстоянии 1 от границы. Этот факт я учитывал при поиске вариантов, чтобы немного сократить перебор.

Если выстроить квадратики размера 9 вдоль двух соседних «стенок», то мы сведём задачу поиска заполнения к задаче для n=8. Таким образом получается, что около 4% заполнений для n=9 получаются напрямую из заполнений для n=8 (у нас есть 4 способа выбрать 2 соседние «стенки»).

Рис. 1. Связь с задачей для n=8.
Рис. 1. Связь с задачей для n=8.

При просмотре заполнений видно, что очень часто «девятки» занимают целиком одну «стенку». Такое случается примерно в 79% заполнений. Если пойти дальше и посчитать процент случаев, когда есть хотя бы один столбец или строка, пересекающая только «девятки», получится около 96%. Видимо, так случается из-за того, что квадратиков размера 9 больше всего и они самые большие.

Рис. 2. Пример заполнения, в котором «девятки» занимают целиком одну стенку и в котором есть столбец , пересекающий только «девятки».
Рис. 2. Пример заполнения, в котором «девятки» занимают целиком одну стенку и в котором есть столбец , пересекающий только «девятки».

Рассматривая заполнения, можно также заметить, что «двойки» часто образуют прямоугольник размера 4*2, то есть касаются друг друга общей стороной. Но это происходит не всегда, а только примерно в 94% случаев. Также проверка показала, что нет случаев, когда «двойки» касаются друг друга (хотя бы углом), но при этом не совпадают по стороне.

В равенстве (1+2+...+9)^2 = 1^3 + 2^3 + … + 9^3можно заметить, что сумма чисел от 1 до 9 равна стороне квадрата. Соответственно, встаёт вопрос, бывает ли, что квадратики выстраиваются таким образом, чтобы в одной строке или столбце встречались квадратики всех 9 видов. Оказывается, да, бывает. А вот чтобы одновременно в одном заполнении и столбец содержал все варианты квадратиков, и строка содержала все варианты квадратиков, - такого не бывает.

Рис. 3. Пример заполнений, в которых в одну строку или столбец выстраиваются квадратики всех размеров.
Рис. 3. Пример заполнений, в которых в одну строку или столбец выстраиваются квадратики всех размеров.

Также я задумался, сколько связных компонент может быть в заполнении. Связная компонента — это подмножество квадратиков одного размера, которые образуют одну связную область (касание только по углу не будем считать принадлежностью к одной связной компоненте). Так вот всего может быть от 14 до 30 связных компонент. Наиболее интересны варианты с маленьким и большим числом связных компонент - они выглядят как своего рода «порядок» и «винегрет» соответственно.

Рис. 4. Примеры заполнений с 14 связными компонентами.
Рис. 4. Примеры заполнений с 14 связными компонентами.
Рис. 5. Примеры заполнений с 30 связными компонентами.
Рис. 5. Примеры заполнений с 30 связными компонентами.

Также я заметил особенность, что квадратики одного размера довольно редко касаются друг друга углами (если при этом 2 других квадратика, касающиеся в этой точке отличаются размером от двух касающихся). Таких случаев менее 2%. А случаев, где более 2-х таких касаний на одном заполнении вообще не нашлось.

Рис. 16. Пример одного и двух касаний углами.
Рис. 16. Пример одного и двух касаний углами.

На этом спасибо за внимание! Надеюсь, после такого рассказа кто-нибудь сможет найти ещё более эффективный алгоритм поиска всех заполнений!

Теги:
Хабы:
+7
Комментарии3

Публикации

Истории

Ближайшие события

8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область