Задача об ожерельях — различия между версиями
(→Алгоритм решения задачи про ожерелья) |
(→Алгоритм решения задачи про ожерелья) |
||
Строка 14: | Строка 14: | ||
− | <tex>C =</tex> <tex dpi = "180"> \frac{1} {|G|}</tex><tex>\sum\limits_{l \in G} k^{P(l)}</tex> | + | <tex>|C| =</tex> <tex dpi = "180"> \frac{1} {|G|}</tex><tex>\sum\limits_{l \in G} k^{P(l)}</tex> |
По условию, перестановкой инвариантной данной будет любая перестановка, полученная из данной циклическим сдвигом. | По условию, перестановкой инвариантной данной будет любая перестановка, полученная из данной циклическим сдвигом. | ||
Очевидно, что для каждой перестановки длины <tex>n</tex> существует ровно <tex>n - 1</tex> инвариантная перестановка, то есть всего инвариантных перестановок в каждом классе <tex>n</tex>, теперь найдем <tex>P(i)</tex>. Заметим, что в <tex>i</tex>-ой перестановке на <tex>l</tex>-ой позиции стоит элемент <tex>(i + l)\bmod n</tex>. Также, заметим, что элемент <tex>a</tex> переходит в элемент <tex>a + in</tex>, где <tex>i \in [1; k]</tex>. Из этого следует, что длина цикла для <tex>i</tex>-ой перестановки равна <tex>lcm(n, i)/i = n/gcd(i,n)</tex>. Откуда следует что: | Очевидно, что для каждой перестановки длины <tex>n</tex> существует ровно <tex>n - 1</tex> инвариантная перестановка, то есть всего инвариантных перестановок в каждом классе <tex>n</tex>, теперь найдем <tex>P(i)</tex>. Заметим, что в <tex>i</tex>-ой перестановке на <tex>l</tex>-ой позиции стоит элемент <tex>(i + l)\bmod n</tex>. Также, заметим, что элемент <tex>a</tex> переходит в элемент <tex>a + in</tex>, где <tex>i \in [1; k]</tex>. Из этого следует, что длина цикла для <tex>i</tex>-ой перестановки равна <tex>lcm(n, i)/i = n/gcd(i,n)</tex>. Откуда следует что: | ||
− | <tex>C =</tex> <tex dpi = "180"> \frac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{gcd(i,n)}</tex>. | + | <tex>|C| =</tex> <tex dpi = "180"> \frac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{gcd(i,n)}</tex>. |
− | где <tex>C</tex> - кол-во различных ожерелий,которые можно составить из <tex>n</tex> бусинок <tex>k</tex> различных цветов. | + | где <tex>|C|</tex> - кол-во различных ожерелий,которые можно составить из <tex>n</tex> бусинок <tex>k</tex> различных цветов. |
== См. также == | == См. также == |
Версия 09:08, 15 января 2013
Определение: |
Требуется посчитать количество ожерелий из | бусинок, каждая из которых может быть покрашена в один из цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).
Решение этой задачи опирается на Лемму Бёрнсайда и Теорему Пойа.
Алгоритм решения задачи про ожерелья
Пусть нам даны бусинки
различных цветов, а ожерелье должно состоять из бусинок.Для решения воспользуемся формулой из теоремы Пойа.
По условию, перестановкой инвариантной данной будет любая перестановка, полученная из данной циклическим сдвигом. Очевидно, что для каждой перестановки длины
существует ровно инвариантная перестановка, то есть всего инвариантных перестановок в каждом классе , теперь найдем . Заметим, что в -ой перестановке на -ой позиции стоит элемент . Также, заметим, что элемент переходит в элемент , где . Из этого следует, что длина цикла для -ой перестановки равна . Откуда следует что:.
где - кол-во различных ожерелий,которые можно составить из бусинок различных цветов.