国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

概率的問(wèn)題:使用遞歸與多次試驗(yàn)?zāi)M的分析

2020-01-26 16:15:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

多次枚舉:

實(shí)例1

口袋中有5只紅球,4只白球。隨機(jī)從口袋中取出3個(gè)球,取出1個(gè)紅球2個(gè)白球的概率

復(fù)制代碼 代碼如下:

<SPAN style="FONT-SIZE: 18px"> srand( (unsigned)time( NULL ) );
 int n = 0;
 for(int i=0; i<100000; i++)
 {
  char x[] = {1, 1, 1, 1, 1, 2, 2, 2, 2};//5個(gè)紅球用5個(gè)1表示 4個(gè)白球用4個(gè)2表示
  int a = 0;  // 取到的紅球的數(shù)目
  int b = 0;  // 取到的白球的數(shù)目

  for(int j=0; j<3; j++)  //取3個(gè)球進(jìn)行3次循環(huán)
  {
   int k = rand() % (9-j);  //下標(biāo)的確定  確定范圍  9-j 是重點(diǎn)
   if(x[k]==1)
    a++;
   else
    b++;

   x[k] = x[9-j-1]; //將取出數(shù)向后移動(dòng)
  }
  if(a==1 && b==2)  n++;//取出1個(gè)紅球2個(gè)白球時(shí)進(jìn)行計(jì)數(shù)
 }
 printf("概率=%f/n", n/100000.0*100);</SPAN>


實(shí)例2
復(fù)制代碼 代碼如下:

<SPAN style="FONT-SIZE: 18px">#define N 30
......
 int a[N];
 srand( time( NULL ) );
 int n = 0;
 for(int k=0; k<10000; k++)
 {
  for(int i=0; i<N; i++)
   a[i] = rand() % 365;
  bool tag = false; // 假設(shè)沒(méi)有相同
  for(i=1; i<N; i++)
  {
   for(int j=0; j<i; j++)
   {
    if(a[i]==a[j])
    {
     tag = true;
     break;
    }
   }
   if(tag) break;
  }
  if(tag) n++;
 }
 printf("%f/n", 1.0 * n / 10000 * 100);
</SPAN>

遞歸:

某個(gè)袋子中有紅球m個(gè),白球n個(gè)。現(xiàn)在要從中取出x個(gè)球。紅球數(shù)目多于白球的概率

下面的代碼解決了這個(gè)問(wèn)題。其中的y表示紅球至少出現(xiàn)的次數(shù)。

這與前文的問(wèn)題是等價(jià)的。因?yàn)槿绻?0個(gè)球,要求紅球數(shù)大于白球數(shù),則等價(jià)于至少取出16個(gè)紅球。

復(fù)制代碼 代碼如下:

<SPAN style="FONT-SIZE: 18px">/*
   m: 袋中紅球的數(shù)目
   n: 袋中白球的數(shù)目
   x: 需要取出的數(shù)目
   y: 紅球至少出現(xiàn)的次數(shù)
*/

double pro(int m, int n, int x, int y)
{
 if(y>x) return 0;
 if(y==0) return 1;  //對(duì)y沒(méi)有要求
 if(y>m) return 0;
 if(x-n>y) return 1;  //把白球全部取出,剩下就是紅球 紅球比至少取出還多,概率為1
 double p1 = pro(m-1,n,x-1,y-1) ; 
 double p2 = pro(m,n-1,x-1,y);
 return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;
}</SPAN>


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 新化县| 舞钢市| 惠州市| 九台市| 南皮县| 隆德县| 株洲县| 仁怀市| 灵石县| 海阳市| 宽甸| 黑山县| 曲沃县| 保康县| 东乡族自治县| 桦甸市| 兴海县| 璧山县| 洛宁县| 石家庄市| 绥滨县| 宁晋县| 南郑县| 福安市| 双柏县| 肇州县| 当涂县| 琼海市| 古浪县| 石泉县| 永州市| 墨玉县| 盐亭县| 凤台县| 泾阳县| 平山县| 衡阳县| 堆龙德庆县| 淮安市| 宜兰市| 平阳县|