置换
基础双射
将置换 唯一分解为若干循环(轮换分解),对于每个循环以其最大值作为开头,再将所有循环按照字典序升序排序,构成一个新的置换。
这是 阶排列到 阶排列的双射。右推左即为按照前缀最大值划分段从而得到这些循环。
例: 阶随机排列中 所在循环长度为 的概率为 。首先 和 等价,而 所在循环长度为 需要基础双射后它在第 位。
关于类型的结论
令 表示 种长度为 的循环个数,将 称为 的类型。那么类型为 的置换个数为:。
这里双射构造采用《多对一》的方式,对于任意一个置换将前 个元素每个都作为一个循环,将之后的 个元素每相邻两个连为一个循环 ... 它能唯一对应到一个合法的排列,并且对于一个合法的排列它会出现 次。
逆序对与下降
求逆保 :逆序对满足 ,画在平面上得证
下降集合 是满足 的 构成的集合。主指标 。
和 等分布: 和 的排列个数相同。
杨表
对于 的一个整数划分 ,画 行左对齐的格子,第 行格子数为 。如果将 中的数不重不漏地填入所有格子并且满足每行每列都严格递增,那么称其为标准杨表。
如果可以填入相同数字,每行不降,每列严格递增,那么称之为半标准杨表。
狗子公式:臂长是右侧格子数,腿长是下方格子处,勾长为臂长加腿长加一,记为 。那么形状为 的杨表个数为 。
值域 的半标准杨表的狗子公式:。
或者 表示的是某个格子。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?