C语言根据概率随机抽奖,【图片】红蓝球概率问题,通过程序模拟抽取,计算结果已出,有兴趣来看【非现役文职吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我用的c语言,大一学的还没忘完。。。。程序非常简单,就是生成随机数,然后根据随机数的结果进行计数就好了。

代码贴下面,有兴趣的可以看看。

懂行的请不要喷我写的烂。。。。。毕竟不是专业码农。

#include

#include

#include

int main()

{

srand((unsigned)time(NULL));

int count1=0,count2=0,count3=0,count4=0,count5=0,count0=0;

int redfirst=0,redremain=0,blueremain=0;

int i=1;

float p;

for (i=1;i<600000;i++)//随机试验600000次

{

int ball=rand()%6;//生成随机数,从0到5,依次代表6个球。12为a箱红球,34为b箱篮球,50为c箱红蓝

if (ball==1)//第一个是a箱红球1

{

count1=count1+1;

redfirst=redfirst+1;//先抽到红计数

redremain=redremain+1;//剩余为红球计数

}

if(ball==2)//第一个是a箱红球2

{

count2=count2+1;

redfirst=redfirst+1;//先抽到红计数

redremain=redremain+1;//剩余为红球计数

}

if (ball==3)//第一个是b箱篮球1,不计数

{

count3=count3+1;

}

if(ball==4)//第一个是b箱篮球2,不计数

{

count4=count4+1;

}

if (ball==5)//第一个是c箱红球

{

count5=count5+1;

redfirst=redfirst+1;//先抽到红计数

blueremain=blueremain+1;//剩余为蓝球计数

}

if(ball==0)//第一个是c箱篮球,不计数

{

count0=count0+1;

}

}

p=(float)redremain/(redremain+blueremain);

printf("实验共完成抽取%d次\n",i);

printf("每个球被抽取次数如下\n");

printf("a箱: 红1次数=%d 红2次数=%d\nb箱: 蓝1次数=%d 蓝2次数=%d\nc箱: 红3次数=%d 蓝3次数=%d\n\n",count1,count2,count3,count4,count5,count0);

printf("累计抽到红球次数=%d\n其中\n箱中剩余一球为红色的次数=%d\n剩余一球为蓝色的次数=%d\n\n",redfirst,redremain,blueremain);

printf("随机摸出一球是红球,则盒子里另一个球是红球的概率\np=%d/(%d+%d)=%d/%d=%f\n",redremain,redremain,blueremain,redremain,redfirst,p);

return (0);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值