置换 杨表

置换 杨表

置换

基础双射

将置换 p 唯一分解为若干循环(轮换分解),对于每个循环以其最大值作为开头,再将所有循环按照字典序升序排序,构成一个新的置换。

这是 n 阶排列到 n 阶排列的双射。右推左即为按照前缀最大值划分段从而得到这些循环。

例:n 阶随机排列中 1 所在循环长度为 k 的概率为 1n。首先 1n 等价,而 n 所在循环长度为 k 需要基础双射后它在第 nk+1 位。

关于类型的结论

ci 表示 p 种长度为 i 的循环个数,将 c1,2,...,n 称为 p 的类型。那么类型为 c 的置换个数为:n!ci!ici

这里双射构造采用《多对一》的方式,对于任意一个置换将前 c1 个元素每个都作为一个循环,将之后的 2c2 个元素每相邻两个连为一个循环 ... 它能唯一对应到一个合法的排列,并且对于一个合法的排列它会出现 ci!ici 次。

逆序对与下降

求逆保 inv:逆序对满足 inv(p)=inv(p1),画在平面上得证

下降集合 D(p) 是满足 pi>pi+1i 构成的集合。主指标 maj(p)=iD(p)i

inv(p)maj(p) 等分布inv=kmaj=k 的排列个数相同。

杨表

对于 n=ai 的一个整数划分 a1a2...ak,画 k 行左对齐的格子,第 i 行格子数为 ai。如果将 1n 中的数不重不漏地填入所有格子并且满足每行每列都严格递增,那么称其为标准杨表

如果可以填入相同数字,每行不降,每列严格递增,那么称之为半标准杨表

狗子公式:臂长是右侧格子数,腿长是下方格子处,勾长为臂长加腿长加一,记为 hook(x)。那么形状为 λ 的杨表个数为 n!xλhook(x)

值域 [1,m] 的半标准杨表的狗子公式:(x,y)λm+yxhook(x,y)

x 或者 (x,y) 表示的是某个格子。

posted @   do_while_true  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 33 minutes 11 seconds

点击右上角即可分享
微信分享提示