zoukankan      html  css  js  c++  java
  • 错排公式及其近似公式

    错排问题详解:

    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的数值的计算,及数据较大时对阶层计算的优化,这两个问题需要改进,这里先挂起。

  • 相关阅读:
    Oracle数据库学习(四)
    近期整理
    2020/5/29
    2020/5/26
    2020/5/25
    2020/5/22
    2020/5/16
    2020/5/15
    2020/5/14
    2020/5/13
  • 原文地址:https://www.cnblogs.com/liugl7/p/4260800.html
Copyright © 2011-2022 走看看