全排序

独自空忆成欢 提交于 2020-03-04 07:43:26

可以想象有4个盒子分别放4样或3样物品。

A44:第一个物品有4种放法,第二个3种,第三个2种,最后一个1种,所以4*3*2*1=24种。

A43:第一个物品有4种放法,第二个3种,第三个2种,所以4*3*2=24种。

还可以套公式

ANR = n/(n-r)

A44 = 4*3*2*1 / 0= 24 ( 0的阶乘=1)

A43 = 4*3*2*1 / 1= 24( 1的阶乘也=1)

扩展资料:

全排列的计算方法:

字典序法

对给定的字符集中的字符规定了一个先后关系,在此基础上规定两个全排列的先后是从左到右逐个比较对应的字符的先后。

[例]字符集{1,2,3},较小的数字较先,

这样按字典序生成的全排列是:123,132,213,231,312,321。

[注意] 一个全排列可看做一个字符串,字符串可有前缀、后缀。

1)生成给定全排列的下一个排列 所谓一个的下一个就是这一个与下一个之间没有其他的。这就要求这一个与下一个有尽可能长的共同前缀,也即变化限制在尽可能短的后缀上。

[例]839647521是1--9的排列。

1—9的排列最前面的是123456789,最后面的是987654321,从右向左扫描若都是增的,就到987654321,也就没有下一个了。否则找出第一次出现下降的位置。

邻位对换法

递减进位制数法的中介数进位不频繁,求下一个排列在不进位的情况下很容易。

这就启发我们,能不能设计一种算法,下一个排列总是上一个排列某相邻两位对换得到的。

递减进位制数字的换位是单向的,从右向左,而邻位对换法的换位是双向的。 这个算法可描述如下:

对1—n-1的每一个偶排列,n从右到左插入n个空档(包括两端),生成1—n的n个排列。

对1—n-1的每一个奇排列,n从左到右插入n个空档,生成1—n的n个排列。

对[2,n]的每个数字都是如此。

参考资料来源:百度百科--全排列

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!