n个元素排成一圈的算法

n个元素排成一圈的问题简称为队列环排。因为一个环形的队列没有首尾之分,故不能直接采用队列直排的办法。当然,经过仔细分析之后,可以发现:直排和环排的差异仅仅在于:

  1. 环排没有首尾之分;
  2. n个元素的环排等价于n+1个元素且首尾相同的直排队列;

理解了这两点差异之后,就可以针对这些差异之处进行处理,具体如下:

n+1个元素且首尾相同的直排队列,若将首尾元素捆绑打包,则等价于n个元素的队列,又因为首尾元素相同,因此包括内部的组合数为1,那么n+1个元素且首尾相同的直排队列的组合数为:

n!\cdot 1=n!

有因为环排没有首尾元素之分,即首元素在第1个位置、第2个位置...只要元素之间相对位置关系不变,都是同一个组合。再采用除法原理进行消序则可以得到:

\frac{n!}{n}=(n-1)!

故n个元素环排的算法为(n-1)!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值