c_cpp 用计算机产生的伪随机数来模拟抛硬币试验。假设抛10次硬币,每次抛硬币得到正面和反面是随机的。抛10次硬币构成一个事件。调用随机(2)返回一个二值结果。在主程序中反复调用函数TossCoin

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 用计算机产生的伪随机数来模拟抛硬币试验。假设抛10次硬币,每次抛硬币得到正面和反面是随机的。抛10次硬币构成一个事件。调用随机(2)返回一个二值结果。在主程序中反复调用函数TossCoin相关的知识,希望对你有一定的参考价值。

//随机数类抛硬币实验测试
#include "stdafx.h"
#include "RandomNumber.h"
#include <iostream>
using namespace std;
 
int TossCoins(int numberCoins);
 
int main()
{
	//模拟随机抛硬币事件
	const int NCOINS = 10;
	const long NTOSSES = 50000L;
	//heads[i]是得到i次正面的次数
	long i,heads[NCOINS+1];
 
	int j,position;
 
	//初始化数组heads
	for(int j=0; j<NCOINS+1;j++)
	{
		heads[j] = 0;
	}
 
	//重复50,000次模拟事件
	for(int i=0; i<NTOSSES; i++)
	{
		heads[TossCoins(NCOINS)]++;
	}
 
	//输出频率图
	for(int i=0; i<=NCOINS; i++)
	{
		position = int(float(heads[i])/NTOSSES*72);
		cout<<i<<" ";
		for(int j=0; j<position-1; j++)
		{
			cout<<" ";
		}
		cout<<"*"<<endl;
	}
 
	return 0;
}
 
int TossCoins(int numberCoins)
{
	//随机抛硬币
	static RandomNumber coinToss;
	int i,tosses = 0;
	for(int i=0; i<numberCoins; i++)
	{
		//Random(2) = 1表示正面
		tosses += coinToss.Random(2);
	}
	return tosses;
}

以上是关于c_cpp 用计算机产生的伪随机数来模拟抛硬币试验。假设抛10次硬币,每次抛硬币得到正面和反面是随机的。抛10次硬币构成一个事件。调用随机(2)返回一个二值结果。在主程序中反复调用函数TossCoin的主要内容,如果未能解决你的问题,请参考以下文章

概率论与数理统计python实验

用随机数列模拟抛硬币

从抛硬币试验看随机游走定义的基本概念错误

EM学习-思想和代码

matlab随机模拟求面积

用偏硬币模拟抛硬币的程序