永发信息网

高手帮忙,急

答案:2  悬赏:30  手机版
解决时间 2021-04-28 20:24
  • 提问者网友:藍了天白赴美
  • 2021-04-28 03:02

数列1,2,3,4,……,n的全排列总排列数为n!种。其中,若数字k排在第k位称为“正序”,若数字k排在第k位以外的位上,称之为“逆序”。如果某个排列中所有数字均为“逆序”,则我们称这个排列为“全逆序排列”。

问题:给出一个n,求数列1~n的所有排列方式中的“全逆序排列”数。

最佳答案
  • 五星知识达人网友:动情书生
  • 2021-04-28 03:16

楼主试下用排除法,排除非全逆序排列的数目剩下的就是全逆序排列的数目了。


设f(n)表示全逆序排列数,则n = 1 时,F(n) = 0 ; n = 2 时,F(n) = 1 ; n >= 3 时分析如下:


1、排列总数为n!


3、减去n个数中有1个正序,其它逆序的情况 C(n , 1)F(n-1) //PS: C(n,1)表示组合数


4、减去n个数中有2个正序,其它逆序的情况 C(n , 2 )F(n-2)


……


即F(n) = n! - C(n,1)F(n-1) - C(n,2)F(n-2) - …… - C(n,n-1)F(1) - C(n,n)F(0)


建议楼主采用递归算法,还有就是n较大时计算机的数据类型不足以存储其内容,需要设计一个专门的大数类。

全部回答
  • 1楼网友:等灯
  • 2021-04-28 03:24
num[逆序排列]=num[全排列]-num[正序排列]=n!-1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯