亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java編程二項分布的遞歸和非遞歸實現代碼實例

2024-07-13 10:17:12
字體:
來源:轉載
供稿:網友

本文研究的主要內容是Java編程二項分布的遞歸和非遞歸實現,具體如下。

問題來源:

算法第四版 第1.1節 習題27:return (1.0 - p) * binomial(N - 1, k, p) + p * binomial(N - 1, k - 1, p);
計算遞歸調用次數,這里的遞歸式是怎么來的?

二項分布:

定義:n個獨立的是/非試驗中成功次數k的離散概率分布,每次實驗成功的概率為p,記作B(n,p,k)。

概率公式:P(ξ=K)= C(n,k) * p^k * (1-p)^(n-k)

其中C(n, k) = (n-k) !/(k! * (n-k)!),記作ξ~B(n,p),期望:Eξ=np,方差:Dξ=npq,其中q=1-p。

概率統計里有一條遞歸公式:

java,遞歸,二項分布,遞歸實例,遞歸算法經典實例,遞歸調用實例

這個便是題目中遞歸式的來源。

該遞推公式來自:C(n,k)=C(n-1,k)+C(n-1,k-1)。實際場景是從n個人選k個,有多少種組合?將著n個人按1~n的順序排好,假設第k個人沒被選中,則需要從剩下的n-1個人中選k個;第k個選中了,則需要從剩下的n-1個人中選k-1個。

書中二項分布的遞歸實現:

java/210860.html">java;">public static double binomial(int N, int k, double p) {     COUNT++; //記錄遞歸調用次數     if (N == 0 && k == 0) {       return 1.0;     }     if (N < 0 || k < 0) {       return 0.0;     }     return (1.0 - p) * binomial(N - 1, k, p) + p * binomial(N - 1, k - 1, p);   } 

實驗結果:

n   k   p   調用次數10  5  0.25  246720  10  0.25  243553830  15  0.25  2440764535 

由結果可以看出來這個遞歸方法需要調用的次數呈幾何災難,n到50就算不下去了。

改進的二項分布遞歸實現:

private static long COUNT = 0;   private static double[][] M;      private static double binomial(int N, int k, double p) {     COUNT++;     if (N == 0 && k == 0) {       return 1.0;     }     if (N < 0 || k < 0) {       return 0.0;     }     if (M[N][k] == -1) { //將計算結果存起來,已經計算過的直接拿過來用,無需再遞歸計算       M[N][k] = (1.0 - p) * binomial(N - 1, k, p) + p * binomial(N - 1, k - 1, p);     }     return M[N][k];   }    public static double Binomial(int N, int k, double p) {     M = new double[N + 1][k + 1];     for (int i = 0; i <= N; i++) {       for (int j = 0; j <= k; j++) {         M[i][j] = -1;       }     }     return binomial(N, k, p);   } 

實驗結果:

n    k   p   調用次數10    5  0.25  10120   10  0.25  45230   15  0.25  120350   25  0.25  3204100  50  0.25  5205

由實驗結果可以看出調用次數大幅減小,算法可以使用。

二項分布的非遞歸實現:

事實上,不利用遞歸,直接計算組合數和階乘,反而速度更快。

//計算組合數 public static double combination(double N, double k) {   double min = k;   double max = N-k;   double t = 0;    double NN=1;   double kk=1;      if(min>max){     t=min;     min = max;     max=t;   }      while(N>max){//分母中較大的那部分階乘約分不用計算     NN=NN*N;     N--;   }      while(min>0){//計算較小那部分的階乘     kk=kk*min;     min--;   }      return NN/kk; }  //計算二項分布值 public static double binomial(int N,int k,double p) {   double a=1;   double b=1;      double c =combination(N,k);      while((N-k)>0){ //計算(1-p)的(N-k)次方         a=a*(1-p);     N--;   }      while(k>0){ //計算p的k次方       b=b*p;     k--;   }      return c*a*b; } 

實驗結果:

n   k  p      二項分布值10,  5, 0.25  0.05839920043945312520, 10, 0.25 0.00992227527967770650, 25, 0.25  8.44919466990397E-5  

與前面的算法比對,計算結果是正確的,而且運行速度是非常之快的。

總結

以上就是本文關于Java編程二項分布的遞歸和非遞歸實現代碼實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品一区二区三区第95| 在线精品国产成人综合| 欧美日本亚洲视频| 日韩中文字幕视频在线| 国产精品久久久亚洲| 国产精品一区二区久久国产| 久久久亚洲影院| 亚洲欧美国产一本综合首页| 久久免费观看视频| 国产精品va在线播放我和闺蜜| 欧美日韩国产精品一区二区不卡中文| 欧美视频在线观看 亚洲欧| 992tv在线成人免费观看| 久久久精品在线观看| 2019中文字幕在线免费观看| 欧美日韩激情网| 91久久夜色精品国产网站| 久久久久久12| 亚洲欧洲激情在线| 亚洲美女性视频| 国产一区二区香蕉| 一区二区国产精品视频| 国产一区二区三区视频| 国产成人精品综合久久久| 最好看的2019的中文字幕视频| 国产精品99久久99久久久二8| 亚洲精品久久久久久久久久久| 免费97视频在线精品国自产拍| 欧美精品电影免费在线观看| 亚洲sss综合天堂久久| 日韩av男人的天堂| 国产精品久久久久久亚洲影视| 另类图片亚洲另类| 日韩免费看的电影电视剧大全| 91在线观看免费网站| 欧美成在线观看| 黑人巨大精品欧美一区二区| 国产精品永久免费视频| 国产精品无码专区在线观看| 中文字幕日韩精品在线| 国产视频精品久久久| 国产综合在线观看视频| 日韩av在线免费看| 久久99精品国产99久久6尤物| 亚洲午夜av久久乱码| 色偷偷av亚洲男人的天堂| 欧美亚洲伦理www| 国产日韩在线精品av| 欧美成人在线网站| 成人午夜一级二级三级| 黑人欧美xxxx| 亚洲xxxxx| 国产精品亚洲美女av网站| 91在线免费观看网站| 国产日韩一区在线| 精品福利樱桃av导航| 中文字幕日韩在线观看| 欧美精品在线第一页| 国产精品美腿一区在线看| 欧美在线视频观看免费网站| 亚洲影影院av| 欧美一级视频一区二区| 久久国产精品久久久久久久久久| 97在线日本国产| 伊人激情综合网| 最近2019好看的中文字幕免费| 大荫蒂欧美视频另类xxxx| 亚洲欧美国产精品va在线观看| 欧美有码在线观看| 日韩欧美中文第一页| 亚洲视频电影图片偷拍一区| 亚洲欧美中文日韩v在线观看| 欧美大学生性色视频| 日韩禁在线播放| 欧美国产高跟鞋裸体秀xxxhd| 精品国模在线视频| 91精品国产自产在线| 亚洲美女精品成人在线视频| 亚洲精品成人免费| 伊人伊人伊人久久| 亚洲精品98久久久久久中文字幕| 九九热99久久久国产盗摄| 欧美中文字幕精品| 欧美一区二区三区四区在线| 2018国产精品视频| 欧美日韩高清在线观看| 色偷偷av亚洲男人的天堂| 国产一区二区av| 精品亚洲va在线va天堂资源站| 国产成人综合精品| 日韩中文综合网| 亚洲少妇中文在线| 色综合久久悠悠| 91亚洲精品久久久久久久久久久久| 综合欧美国产视频二区| 日韩av在线直播| 中文字幕精品www乱入免费视频| 欧美日韩免费区域视频在线观看| 国产精品久久久久久久久久新婚| 欧美成人精品三级在线观看| 日本视频久久久| 色综合色综合久久综合频道88| 性欧美办公室18xxxxhd| 国产亚洲人成a一在线v站| 日本欧美一二三区| 91精品国产91久久久久久吃药| 亚洲精品福利视频| 亚洲第一福利网站| 国产国语刺激对白av不卡| 欧美成人免费全部观看天天性色| 91精品国产综合久久香蕉的用户体验| 欧美日韩一区二区精品| 最近2019中文字幕大全第二页| 97在线看免费观看视频在线观看| 欧美国产亚洲精品久久久8v| 88xx成人精品| 欧洲成人在线视频| 亚洲成人在线网| 欧美黑人国产人伦爽爽爽| 亚洲天堂色网站| 久久久精品免费| 国产精品视频午夜| 亚洲精品福利视频| 色偷偷噜噜噜亚洲男人的天堂| 久久精彩免费视频| 乱亲女秽乱长久久久| 成人性生交大片免费观看嘿嘿视频| 不卡伊人av在线播放| 亚洲人成毛片在线播放| 久久成人精品一区二区三区| 日韩欧美一区二区三区| 黄色91在线观看| 7m第一福利500精品视频| 日本欧美在线视频| 主播福利视频一区| 欧美老女人性视频| 欧美精品激情在线观看| 91沈先生作品| 久久精品人人爽| 国产亚洲综合久久| 川上优av一区二区线观看| 国精产品一区一区三区有限在线| 久久人体大胆视频| 欧美一区二区三区免费视| 亚洲码在线观看| 亚洲最大成人在线| 国产精品久久久久av| 91精品国产一区| 国产精品美女久久久免费| 欧美国产日韩中文字幕在线| 国语自产精品视频在免费| 中文字幕综合一区| 国产精品美女在线| 成人写真视频福利网| 久久精品2019中文字幕| 国产精品亚洲一区二区三区| 色噜噜国产精品视频一区二区| 91免费看国产| 北条麻妃一区二区三区中文字幕| 国产九九精品视频| 在线国产精品视频| 国产精品18久久久久久首页狼| 亚洲成色999久久网站| 国产精品电影网|