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随机模拟求面积
用偏硬币模拟抛硬币的程序