3666 - 取球概率

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

 口袋中有5只红球,4只白球。
随机从口袋中取出3个球。
则取出1个红球2个白球的概率是多大?
请编程进行100000次取球模拟。

题目输入

题目输出

四舍五入保留到整数部分。假如10万次中,有9万次满足要求,应该输出: 90%

输入/输出样例

输入格式


                        

输出格式


                        

C++解答

#include <iostream>
#include <ctime>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main()
{
	srand(time(0));
	int i,j,cnt=0;
	for(i=0;i<100000;i++)
	{
		int a[]={1,1,1,1,1,0,0,0,0};//1为红,0为白 
		int red=0,white=0;
		for(j=0;j<3;j++)//取3次
		{
			int idx=rand()%(9-j);
			if(a[idx]) red++;
			else white++;
			a[idx]=a[8-j];
		} 
		if(red==1&&white==2) cnt++; 
	}
	cout<<fixed<<setprecision(0)<<cnt/100000.0*100<<'%';
	return 0;
}