当前位置:网站首页>错排兼排列组合公式
错排兼排列组合公式
2022-06-28 03:15:00 【我已经怒不可遏了!】
错排
> 概念
首先引进一个概念,什么是错排;
错排就是讲一个有顺序的数组,其中的每个数,排列后不在原本的位置。
例如 1 2 3 4 5
其中1不能放在第一个地方,2不能放在第二个地方,以此类推。
这里有张图给你理解接下来要给出的公式
如果想更好理解的话这里有个链接
黑谷小健 莫哥yyds
公式
int dp[25];
dp[1]=0;
dp[2]=1;
for(i=3;i<=n;i++)//因为前两个要预存所以从三开始
dp[i]=(i-1)*(dp[i-1]+dp[i-2]);
对于错排我们运用公式就行
组合的计算
所以我们可以算n,m,n-m的阶乘来求
int mo=1,zi=1,z2=1,z3=1;
for(i=1;i<=n;i++)//这是n的阶乘
mo*=i;
for(i=1;i<=(n-m);i++)//n-m的阶乘
z2*=i;
for(i=1;i<=m;i++)//m的阶乘
z3*=i;
这是一道错排题(统计学生成绩的)
题目大意,给定一个学生数,有n名学生,1≤n≤15,克总讲所有学生的成绩排名统计错了
我们可以假设正确顺序为1 2 3 ……,或者任意顺序来进行错排。
代码如下
#include<bits/stdc++.h>
using namespace std;
#define MAX 0x3f3f3f3f
typedef long long ll;
#define bug(a) cout<<endl<<"*"<<a<<endl;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll n;
cin>>n;
ll dis[30];
dis[1]=0;
dis[2]=1;
for(int i=3;i<=n;i++){
dis[i]=(i-1)*(dis[i-2]+dis[i-1]);
}
cout<<dis[n]<<endl;
}
输入
3
输出
2
n=3时,有两种情况:
3 1 2
2 3 1
最后来句话,莫哥yyds。
边栏推荐
猜你喜欢
黑体辐射初探
WebSocket(简单体验版)
Anaconda command usage
光的粒子说(光电效应/康普顿效应)
MySQL configuration of database Series F5 load balancing
开启创客教育造物学的领域
Does the applet image component not display pictures?
Change of monitoring documents and folders of "operation and maintenance department"
JVM一:JVM入门以及Class文件认识
Dataloader parameter collate_ Use of FN
随机推荐
KVM常用命令详解
力扣每日一题-第29天-219.存在重复元素Ⅱ
小程序image组件不显示图片?
几个重要的物理概念
17 `bs object Node name h3 Parent ` parents get parent node ancestor node
用于 C# 的 SQL 基本语法总结
Lamaba表达式学习及常用函数式接口
What is the difference between slice and array in go question bank 12?
Extensible database (Part 2)
STM32 peripheral SDIO and SD card configuration
Several ways of sharing printers in LAN
《Go题库·12》slice和array区别?
友链须知
自用工具 猴子都会用的unity视频播放器
ambari SSLError: Failed to connect. Please check openssl library versions.
开关电源—Buck电路原理及其仿真
资源管理、高可用与自动化(下)
Learning - useful resources
学习---有用的资源
Cannot edit in read-only editor if it appears in vscode