伯努利错装信封问题

题目描述

某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。

输入输出格式

输入格式:

一个信封数n(n<=20)

输出格式:

一个整数,代表有多少种情况。

输入输出样例

输入样例#1:?复制

2

输出样例#1:?复制

1

输入样例#2:?复制

3

输出样例#2:?复制

2

解:伯努利错装信封问题,公式上!

f(n)=(n-1)*(f(n-1)+f(n-2))

(n表示信封数)

【算法分析】首先,f(0)=1, f(1)=0, f(2)=1

当n>2时,设第一封信装在第二个信封中 (有n-1种方法)

此时若第二封信装在第一个信封中,则剩下的即为n-2错排问题 (f(n-2)种方法)

若第二封信不装在第一个信封中,把第二封信看作与第一个信封为一套

(与错排意思相同),剩下的即为n-1错排问题 (f(n-1)种方法)

得出公式:f(n)=(n-1)*(f(n-1)+f(n-2))(n表示信封数)

原文地址:https://www.cnblogs.com/ZDHYXZ/p/8535404.html

时间: 2024-10-04 12:45:52

伯努利错装信封问题的相关文章

伯努利父子恩怨

[核心提示]约翰·伯努利和他的儿子丹尼尔·伯努利都是著名的科学家,在他们之间有一段恩怨. 约翰·伯努利和他的儿子丹尼尔·伯努利都是著名的科学家,在他们之间有一段恩怨. 约翰·伯努利最初学医,同时研习数学.他于1690年获医学硕士学位,1694年又获得博士学位,其论文是关于肌肉收缩的问题,但此后不久他爱上了微积分.1695年,28岁的约翰取得了他的第一个学术职位——荷兰格罗宁根大学数学教授.10年后,约翰接替去世的雅各布担任巴塞尔大学数学教授,并当选为巴黎科学院外籍院士和柏林科学协会会员.在171

概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式

之前忘记强调重要的差异:链式法则的条件概率和贝叶斯网络的链式法则之间的差异 条件概率链式法则 P\left({D,I,G,S,L} \right) = P\left( D \right)P\left( {I\left| D \right.}\right)P\left( {G\left| {D,I} \right.} \right)P\left( {S\left| {D,I,G} \right.}\right)P\left( {L\left| {D,I,G,S} \right.} \right)"

概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯

指针悬空 指针悬空在我们使用指针的时候很容易被忽视,主要的表现是:指针所指向的内存 释放,指针并没有置为NULL,致使一个不可控制的指针. #include<stdio.h> #include<stdlib.h> int *pointer; void func() { int n=8; pointer=&n; printf("pointer point data is %d\n",*pointer); // pointer=NULL; } int mai

stick-learn朴素贝叶斯的三个常用模型:高斯、多项式、伯努利

朴素贝叶斯是一个很不错的分类器,在使用朴素贝叶斯分类器划分邮件有关于朴素贝叶斯的简单介绍. 若一个样本有n个特征,分别用x1,x2,...,xn表示,将其划分到类yk的可能性P(yk|x1,x2,...,xn)为: P(yk|x1,x2,...,xn)=P(yk)∏ni=1P(xi|yk) 上式中等号右侧的各个值可以通过训练得到.根据上面的公式可以求的某个数据属于各个分类的可能性(这些可能性之和不一定是1),该数据应该属于具有最大可能性的分类中. 一般来说,如果一个样本没有特征xi,那么P(xi

伯努利大数定律|辛钦大数定律|全概率公式|贝叶斯公式|

---恢复内容开始--- 生物统计学 古典概型: 理论上,在未得到试验结果之前可以根据实验条件,预先估计出来的所有可能结果称为样本空间,即为集合Ω.样本点w是Ω的一个元素.这是概率的古典定义,即依据事件本身特性,直接得到概率.这里得到的往往是先验概率. 随机事件是一个集合,是样本空间的一个子集. 必然事件是一个集合,包含所有样本点. 不可能事件是一个集合,不包含所有样本点. Today: 与古典概率的定义不同,现在我们所知的是事物已经发生频率,而通过伯努利大数定律使得大样本的频率约等于概率,这里

朴素贝叶斯分类器(伯努利贝叶斯+高斯贝叶斯+多项式贝叶斯)

1 from sklearn.datasets import load_diabetes 2 X,y=load_diabetes().data,load_diabetes().target 3 X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=8) 4 lr=LinearRegression().fit(X_train,y_train) 5 print("the coefficient:{}".format(

贝努利概率 matlab

参考:http://zhidao.baidu.com/link?url=3XZm35XpFf_kbADwDHEERtgFMKqHftiS5SyTCWcBtlF7B7zeNgoNqIzXxpJsHtBIGdofik99hN3-e_Gs9aYKSTbvgCbZ0Gp49hiUtP_L5hK % 设定p值p=0.6;% 产生随机矩阵m=3;n=4;A=rand(m,n);% 生成伯努利矩阵A=A<p; % for exampleA = 0.9572 0.1419 0.7922 0.0357 0.485

概率:贝努利概型

原文地址:https://www.cnblogs.com/wbyixx/p/12236326.html

洛谷 P1595 信封问题(周五杂题选讲)(错排公式)

题目描述 某人写了n封信和n个信封,如果所有的信都装错了信封.求所有信都装错信封共有多少种不同情况. 输入输出格式 输入格式: 一个信封数n(n<=20) 输出格式: 一个整数,代表有多少种情况. 题解 本题即为伯努利信封问题 360百科:错排公式 STD 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 int b(int n) 5 { 6 if (n==1) return 0; 7 else if (n==2) r