C语言之基本算法28—硬币抛投(随机数)

来源:互联网 发布:淘宝营销系统架构 编辑:程序博客网 时间:2024/06/05 20:28
//硬币抛投(随机数)
/*
=====================================================================
题目:抛投两枚硬币,试分析共有几种情况,概率分别为多少?
=====================================================================
*/


#include<stdio.h>
#include<iomanip>
#include<ctime>
main()
{
int a,b,c,n,x,y;a=0;b=0;c=0;
srand(time(0));//这个必须有,否则无法生成随机数!
for(n=0;n<100;n++)
{
x=rand()%(2-0)+0;//产生0,1两种结果,表示一正一反,所以在[0,2)内产生随机数,即2=2-0+0,在[a,b)内产生随机数:rand()%(b-a)+a,此处a=0,b=2;
y=rand()%(2-0)+0;
printf("%3d:  %d,%d      ",n+1,x,y);
if((n+1)%5==0)printf("\n");
if(x+y==0)
a++;
else if(x+y==1)
b++;
else
c++;
}
printf("两个正面:%d,一正一反:%d,两个反面:%d\n",a,b,c);
}


/*
====================================================================
评:

首先要知道这是C语言和C++的组合,其实他们是一种语言。必须用到<ctime>和<iomanip>

函数(如果不知道,那么背会记住就可以)。考点是投掷两个硬币可能产生三种结果:1、两

正,2、两反,3、一正一反,分别用0,1,2表示,这就分析出两个要素需要产生三种结果,自

然是0+0=0;0+1=1;1+1=2;所以要随机产生0,1两个要素。即在[0,2)产生随机数或等价于

[0,1]的随机数!

=====================================================================
*/






0 0
原创粉丝点击