算法:康托展开式——实现全排列序列与序号的映射

康托展开式是将1到n的全排列映射到编号的一种方法,通过公式的说明和证明,阐述了如何从全排列序列计算其对应的编号。文中以1到4的全排列为例,详细解释了康托公式中的每一项如何对应全排列序列中的元素。同时,讨论了康托公式的逆向运用,即如何从编号恢复全排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

康托展开式实现了由1到n组成的全排列序列到其编号之间的一种映射,下面会给出例子,虽然这个公式应用不是很多,但这种思想值得学习,首先给出其公式:

X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!


一.公式的说明

由1到n这n个数组成的全排列,共n!个,按每个全排列组成的数从小到大进行排列,并对每个序列进行编号(从0开始),并记为X;比如说1到4组成的全排列中,1234对应编号0,1243对应编号1。

对于ai的解释需要用例子来说明:

对1到4的全排列中,我们来考察3214,则

1. a4={3在集合(3,2,1,4)中是第几大的元素}=2

2. a3={2在集合(2,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值