首页 > 代码库 > 错排公式及其近似公式
错排公式及其近似公式
错排问题详解:
http://zh.wikipedia.org/wiki/装错信封问题
解决方法,不再赘述,这里给出错排公式及其近似公式的代码实现:
1.
#include <iostream>using namespace std;int getjie(int a){ if(a==1)return 1; if(a>1){ return a*getjie(a-1); } }int main(){ int n; cin>>n; double sum=0; int da=getjie(n); for(int i=2;i<=n;++i){ if(i%2==0){ sum+=da/getjie(i); } else{ sum-=da/getjie(i); } } cout<<sum<<endl;}
2.
#include <iostream>#include <cmath>using namespace std;double getjie(int n){ if(n==1) return 1; if(n>1) return n*getjie(n-1);}double gete(){ double out=1; for(int i=1;i<100;++i){ out=out+1.0/getjie(i); } return out;}int main(){ int n; cin>>n; double out=getjie(n)*1.0/gete() +0.5; cout<<floor(out); }
这里自然对数的底数e的数值的计算,及数据较大时对阶层计算的优化,这两个问题需要改进,这里先挂起。
错排公式及其近似公式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。