Задача об ожерельях — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Алгоритм решения задачи про ожерелья)
(Алгоритм решения задачи про ожерелья)
Строка 28: Строка 28:
  
  
Тогда <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>
+
Тогда <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.
  
 
== Алгоритм решения задачи про ожерелья с отражениями==
 
== Алгоритм решения задачи про ожерелья с отражениями==

Версия 23:55, 7 января 2016

Задача:
Требуется посчитать количество ожерелий из n бусинок, каждая из которых может быть покрашена в один из k цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).


Решение этой задачи опирается на лемму Бёрнсайда и теорему Пойа.


Алгоритм решения задачи про ожерелья

Пусть нам даны бусинки k различных цветов, а ожерелье должно состоять из n бусинок.

Для решения воспользуемся формулой из теоремы Пойа.


|C|= 1|G|lGkP(l)

По условию, перестановкой инвариантной данной будет любая перестановка, полученная из данной циклическим сдвигом. Очевидно, что для каждой перестановки длины n существует ровно n1 инвариантная перестановка, то есть всего инвариантных перестановок в каждом классе n, теперь найдем P(i). Заметим, что в i-ой перестановке на l-ой позиции стоит элемент (i+l)modn. Также, заметим, что элемент a переходит в элемент a+in, где i=1,2,k. Из этого следует, что длина цикла для i-ой перестановки равна lcm(n,i)i=ngcd(i,n), где gcd(i,n)НОД(i,n), lcm(i,n)НОК(i,n). Откуда следует что:

|C|= 1nni=1kgcd(i,n).


где |C| — кол-во различных ожерелий,которые можно составить из n бусинок k различных цветов.


Если раскраски ожерелья одинаковые, то они принадлежат одной орбите, т.е. одна получается из другой некоторым преобразованием симметрии. Неподвижные точки поворота есть только у тождественного поворота и их n штук. Тогда, по лемме Бёрнсайда, число орбит равняется np=gcd(n,i), где p минимальное число такое, что ip делится на n, и число их раскрасок Ni=kgcd(n,i). Сумма же инвариантных раскрасок для всех поворотов: S=ni=1Ni=ni=1kgcd(n,i). В последней сумме φ(n) слагаемых (φ(n)функция Эйлера), для которых gcd(n,i)=1. Если же gcd(n,i)=q, то gcd(nq,iq)=1. Чтобы определить количество таких i, меньших n, нужно перебрать числа вида i=lq,0lnq и проверять их на условие 1=gcd(nq,iq)=gcd(nq,l). Таких чисел, очевидно, φ(nq) (по определению φ(n)). Поэтому сумму можно заменить: S=ni=1kgcd(n,i)=q|nφ(nq)kq.


Тогда |C|= 1nq|nφ(nq)kq.

Алгоритм решения задачи про ожерелья с отражениями

Слева пример оси для нечётного случая. Справа для чётного.

Пусть теперь ожерелья считаются одинаковыми, если они не только переходят друг в друга поворотом, но и отражением относительно некоторой оси (ось может проходить через две противоположные бусинки или через две противоположные пустоты в чётном случае и через бусинку и пустоту напротив неё в нечётном случае). Такие ожерелья называются bracelets [1]. Будем пользоваться леммой Бёрнсайда. Разберём два случая.

Для начала покажем, что в качестве операций требуется рассматривать только повороты и отражения.

  • Поворот и отражение — отражение.

Занумеруем наши бусинки по часовой стрелке. Поворот и отражение не меняют порядка (в каком-то направлении бусинки занумерованы по порядку). Нетрудно понять, что отражение меняет направление обхода наших бусинок и не меняет порядка. Если мы сначала сделаем поворот, а потом отразим относительно какой-нибудь оси, то мы то самое же можем получить и обыкновенным отражением относительно какой-то оси. Такая ось найдётся, потому что всегда можно выбрать ось, что поставит первую бусинку на своё изначальное место, поменяв направление обхода (если перебирать все оси подряд, начиная с оси, проходящей через нужную нам бусинку, то изначально она останется на своём месте, потом сместится на одно место, потом на два и.т.д.). Поэтому поворот и отражение не добавляет нам новой операции.

  • Отражение и поворот — отражение.

Аналогичные рассуждения.

  • Отражение и отражение — поворот.

Тут мы дважды меняем направление обхода, но не меняем порядка. Поэтому данная операция заменяется обычным поворотом.

Пусть число бусинок нечётное, тогда мы имеем n осей, проходящих через каждую бусинку. Рассмотрим одну ось. Возьмём половину бусинок с одной стороны от оси и ту бусинку, через которую проходит данная ось. Мы можем окрасить их в произвольные цвета, а остальная половина по ним однозначно восстановится. Таким образом количество неподвижных точек для одной оси будет kn+12. Операций в группе будет в два раза больше, чем было: 2n (n сдвигов и n отражений).

По Лемме Бёрнсайда: |B|= 1|G|kGI(k)

|G|=2n. Первые n операций — повороты, и сумма количества их неподвижных точек, делённая на 2n, принимает значение |C|2, где |C| - количество ожерелий из n бусинок k различных цветов без отражений (задача выше) т.к. деление в задаче без отражений происходило на n, а здесь на 2n. Следующие n операций — отражения. У каждой такой операции kn+12 неподвижных точек. Поэтому сумма получается kn+12n.

|B|=|C|2+12nkn+12n=|C|2+12kn+12=12nq|nφ(nq)kq+12kn+12


Разберём теперь чётный случай. Тут мы имеем n2 осей, проходящих через пустоты между бусинками (ось можно провести через пустоту после каждой бусинки, но половина из них будет повторяться). В таких вот случаях можно выбрать по n2 бусинок и дать им произвольные цвета. Остальная половина восстановится по ним. Таким образом для данных осей количество неподвижных точек будет kn2. Ещё у нас есть n2 осей, проходящих через бусинки. В данных случаях мы можем выбрать по n2+1 бусинок (бусинки на оси и все по одну какую-то сторону от неё). То есть будет kn2+1 неподвижных точек. Операций также 2n.

По Лемме Бёрнсайда:

|B|=|C|2+12n(n2kn2+n2kn2+1) =|C|2+14kn2(k+1)=12nq|nφ(nq)kq+14kn2(k+1)

См. также

Примечания

Источники информации