zoukankan      html  css  js  c++  java
  • 蓝桥杯 C/C++参考题目 取球概率(数学题,概率)

    口袋中有5只红球,4只白球。随机从口袋中取出3个球,则取出1个红球2个白球的概率是多大?类似这样的数学问题,在计算的时候往往十分复杂。但如果通过计算机模拟这个过程,比如进行100000次取球模拟,统计一下指定情况出现的次数对计算机来说是方便且快速的。同样,这个原理也适用于像天气预报这样复杂的系统过程。

    以下的程序就是用于解决取球概率问题的。仔细阅读代码,补全空白的部分。

     1     srand( (unsigned)time( NULL ) );
     2 
     3     int n = 0;
     4     for(int i=0; i<100000; i++)
     5     {
     6         char x[] = {1, 1, 1, 1, 1, 2, 2, 2, 2};
     7         int a = 0;  // 取到的红球的数目
     8         int b = 0;  // 取到的白球的数目
     9 
    10         for(int j=0; j<3; j++)
    11         {
    12             int k = rand() % (9-j);
    13             if(x[k]==1) 
    14                 a++;
    15             else
    16                 b++;
    17 
    18             _______________________;
    19         }
    20 
    21         if(a==1 && b==2)  n++;
    22     }
    23 
    24     printf("概率=%f
    ", n/100000.0*100);

      水题,数学题,概率

      填空处你需要做的是,把当前的最后一个球填到现在取出球的位置,即:x[k]=x[9-j-1]; 

       rand()函数返回一个从srand赋的整数到21亿的整数。具体见:rand()-百度百科rand函数-百度百科

      代码:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <time.h>
     4 
     5 int main()
     6 {
     7     srand( (unsigned)time( NULL ) );
     8 
     9     int n = 0;
    10     for(int i=0; i<100000; i++)
    11     {
    12         char x[] = {1, 1, 1, 1, 1, 2, 2, 2, 2};
    13         int a = 0;  // 取到的红球的数目
    14         int b = 0;  // 取到的白球的数目
    15 
    16         for(int j=0; j<3; j++)
    17         {
    18             int k = rand() % (9-j);
    19             if(x[k]==1) 
    20                 a++;
    21             else
    22                 b++;    
    23             x[k]=x[9-j-1];
    24         }
    25 
    26         if(a==1 && b==2)  n++;
    27     }
    28 
    29     printf("概率=%f
    ", n/100000.0*100);
    30     return 0;
    31 }
    32 /* rand()函数不知道怎么用的可以用以下代码测试一下
    33 int main()
    34 {
    35     srand( (unsigned)time( NULL ) );
    36     while(getchar()){
    37         int k = rand();
    38         printf("%d
    ",k);
    39     }
    40 }
    41 */

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    Linux中的中断处理
    Yocto使用小技巧
    udev学习笔记汇总
    USB gadget学习笔记
    Linux常用命令
    Linux下软件安装方法
    278. First Bad Version
    MySQL的索引
    7. Reverse Integer
    排序算法
  • 原文地址:https://www.cnblogs.com/yym2013/p/3597328.html
Copyright © 2011-2022 走看看