数论--错排

简介: 先上唯一看得懂的错排概念,大概像递推dp一样?分情况分步骤往上级递推出的公式

概念


先上唯一看得懂的错排概念,大概像递推dp一样?分情况分步骤往上级递推出的公式,具体过程如下:

20210406211947669.png

新郎官题目大意:


假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.


思路:也算是一种错排的扩展,但是得用到排列组合的公式,从n对新婚夫妇里选m个新郎。


#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
    int n,m,i,j,t;
    cin>>t;
    while(t--){
        cin>>n>>m;
            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]);
            int mo=1,zi=1,z2=1,z3=1;
            for(i=1;i<=n;i++)
                   mo*=i;
            for(i=1;i<=(n-m);i++)
                   z2*=i;
            for(i=1;i<=m;i++)
                    z3*=i;
            cout<<(dp[m])*((mo)/(z2*z3))<<endl;
    }
}


老天爷签名大意:


首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中;

然后,待所有字条加入完毕,每人从箱中取一个字条;

最后,如果取得的字条上写的就是自己的名字

求都不中奖的概率。

思路:首先列出所有的可能,然后再除以都不中奖的可能,都不中奖也就是错排的方案数.

#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
        int n,i,j,t,dp[25];
        dp[0]=0,dp[1]=0,dp[2]=1;
        for(i=3;i<=20;i++){
            dp[i]=(i-1)*(dp[i-1]+dp[i-2]);
        }
        int sum[25];
        sum[0]=0,sum[1]=1,sum[2]=2;
        for(i=3;i<=20;i++){
            sum[i]=i*sum[i-1];
        }
        cin>>t;
        while(t--){
                cin>>n;
                double ans1;
                 ans1=dp[n]*1.0/sum[n];
                 ceil(ans1);
                 ans1*=100;
                 //cout<<dp[n]<<" " <<sum[n]<<endl;
                 printf("%.2lf%%\n",ans1);
        }
}
相关文章
Echarts手机端无刷新实现图表自适应横屏和竖屏的解决方案
Echarts手机端无刷新实现图表自适应横屏和竖屏的解决方案
647 0
|
存储 编解码 5G
LDPC 在 5G-NR 中的标准进展 | 带你读《5G-NR信道编码》之十二
本章节带你了解LDPC 在 5G-NR 中的标准进展 ,观察5G是如何通过LDPC起作用的。
LDPC 在 5G-NR 中的标准进展  | 带你读《5G-NR信道编码》之十二
|
11月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
250 2
|
域名解析 网络协议 安全
阿里云CDN
本文介绍阿里云CDN产品中涉及的基本概念,便于您更准确地理解和使用CDN产品。
297 5
|
JavaScript 网络安全
浏览器——net::ERR_CONNECTION_TIMED_OUT
浏览器——net::ERR_CONNECTION_TIMED_OUT
565 0
|
JavaScript Java 测试技术
基于微信小程序的刷题系统的+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的刷题系统的+springboot+vue.js附带文章和源代码设计说明文档ppt
234 1
|
数据采集 机器学习/深度学习
|
存储 缓存 小程序
详细讲解缓冲区
详细讲解缓冲区
|
Java 应用服务中间件 Spring
WebService - CXF开发Server和Client(main方法测试)
WebService - CXF开发Server和Client(main方法测试)
276 0
|
安全 物联网 物联网安全
物联网固件安全检测
本场景带您体验使用固件安全检测完成一次对物联网设备固件的安全扫描,获得一份安全扫描报告。