群论

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DT_Kang/article/details/82286144

1

一张圆桌周围 n 把椅子,留下 k 把,且任意两个椅子不相邻。求本质不同的方案数。如果对于两个方案,其中的一个不能通过旋转或翻转得到另一个,那么称他们本质不同。

根据 burnside 引理,等价类数量等于置换不动点数量的平均数。我们枚举一个旋转的置换,例如旋转了 x 步,那么在这个置换下就有 g c d ( x , n ) 个循环节,长度都为 d = n g c d ( x , n ) 。每个循环节状态应该相同。因此如果 d | k ,那么我们就要在所有循环节中选出 n u m = k d 个,并且不相邻。发现如果相邻的循环节之间连边,那么这张图还是一个环。我们先随便找个地方断开,变成序列上不相邻,最后减去同时选首尾的。因此方案数为 ( g c d ( x , n ) n u m + 1 n u m ) ( g c d ( x , n ) n u m + 3 n u m 2 ) 序列上不相邻的做法类似隔板法,先拿出 n u m 1 个球,最后插回去。

对于环,需要讨论 k n 的奇偶。

2

m 种颜色的珠子。有三种操作:旋转、翻转、转换操作.。转换操作会将所有珠子的颜色编号加1,。特别地, 对于所有颜色编号为 m 的珠子, 它们的颜色编号会变为1。 如果一个项链A在经过任意的旋转, 翻转, 颜色转换之后变为了项链 B,则称 A 和 B 是等价的。 求有多少个本质不同的项链。

又加了转换操作。一个想法是不改变置换群,统计答案的时候考虑转换。另一种想法是扩大置换群。发现第二种比较靠谱。我们把置换群群扩大到 2 n m 个。例如我们旋转了 i 步,转换了 d 次,首先要满足同一循环节前一个颜色比后一个小 d ,并且 d · n g c d ( i , n ) = 0   ( m o d   m ) ,因为转一圈要变回自己的颜色。我们想要计算一下在一个 i 下有多少合法的 d 。令 z = n g c d ( i , n ) ,化简一下式子:

d · n z = 0   ( m o d   m ) d z = k m d = m ( m , z ) · k z / ( m , z ) d = 0   ( m o d   m ( m , z ) )

由于 d [ 1 , m ] ,因此在当前 i 下有 ( m , z ) 个合法的 d 。所以我们的总方案数长这样:

i = 1 n m ( i , n ) · ( m , n ( n , i ) ) = d | n m d ( m , n d ) j = 1 n [ ( j , n ) == d ] = d | n m d ( m , n d ) j = 1 n / d [ ( j , n d ) == 1 ] = d | n m d ( m , n d ) φ ( n d )

好像还要写一个 Pollard_Rho…

猜你喜欢

转载自blog.csdn.net/DT_Kang/article/details/82286144