首页 > 编程知识 正文

排列组合中错位重排原理,5个人的错排问题

时间:2023-05-03 21:53:00 阅读:51418 作者:373

概念

首先,引入什么是错误列的概念;

排列错误是指有顺序的排列。 其中的各数量在排列后不在原来的位置。

例如1 2 3 4 5

就像其中不能放在第一个地方,不能放在第二个地方一样。

这里有一张用来理解接下来要展示的公式的图

如果你想更好地理解,这里有链接

黑谷小健hpdzxyyds

公式

int dp[25] dp[1]=0; dp[2]=1; for(I=3; i=n; I ) ) /前两个保留,因此从3开始DP[I]=(I-1 ) *(dp[i-1] dp[i-2] ); 错误的队伍可以用公式

组合计算

因此,能够计算并求出n、m、n-m的阶乘

int mo=1,tlddc=1,z2=1,z3=1; for(I=1; i=n; I//这是n的阶乘mo*=i; for(I=1; I=(n-m; //n-m的阶乘z2*=i; for(I=1; i=m; //m的阶乘z3*=i; 这是错误的问题(统计了学生的成绩)。

题目是:给一个学生数,有n个学生,1n15,克总是所有学生成绩排名统计错误

假设可以按1、2、3…或任何顺序对正确的顺序进行排序。

代码如下

# include bits/stdc.husingnamespacestd; # definemax0x3F3 F3 ftypedeflonglongll; #定义bug (a ) coutendl'*'aendl; int main () IOs :3360 sync _ with _ stdio (false ); CIN.Tie(0; cout.tie(0; ll n; cinn; ll dis[30]; dis[1]=0; dis[2]=1; for(intI=3; i=n; I({dis[I]=(I-1 ) * ) *(dis[i-2] dis[i-1] ); } coutdis[n]endl; }输入

3

输出功率

2

n=3时,有两种情况。

3 1 2

2 3 1

最后,hpdzxyyds。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。