用c语言模拟抛硬币的试验

用c语言模拟抛硬币的试验,第1张

#include<stdioh>

#include<stdlibh>

#include<timeh>

#define INT_MAX  100

void main()

{

  int n,zhengsum=0,fansum=0;

  srand(time(NULL));

  scanf("%d",&n);

  while(n--)

  {

      if(rand()%INT_MAX10/INT_MAX>05)

          zhengsum++;

      else

          fansum++;

  }

  printf("正面数:%d 反面数: %d\n",zhengsum,fansum);

}

#include <iostreamh>

#include "stdafxh"

#include<iomaniph>

#include "stdioh"

#include "stdlibh"

void main()

{

long int i,zhengmian=0,fanmian=0,a;

for (i=1;i<101;i++)

{

a=rand()%2;

if(a==1)zhengmian=zhengmian+1;

if(a==0)fanmian=fanmian+1;

}

cout<<"正面的次数为:"<<zhengmian<<"次"<<endl;

cout<<"反面的次数为:"<<fanmian<<"次"<<endl;

}

利用计算机产生一个0到1均匀分布的随机数r,如果r>05,则正面,否则反面。

function zhengmianfanmian = yingbi()

if r>05

fprintf('正面');

else

fprintf('反面');

zhengmianfanmian=0;

end

概率

是度量偶然事件发生可能性的数值。假如经过多次重复试验(用X代表),偶然事件(用A代表)出现了若干次(用Y代表)。以X作分母,Y作分子,形成了数值(用P代表)。在多次试验中,P相对稳定在某一数值上,P就称为A出现的概率。如偶然事件的概率是通过长期观察或大量重复试验来确定,则这种概率为统计概率或经验概率。

excel是我们生活中使用最为普遍工具之一,但是正是因为这种普遍,有些人可能会觉得掌握excel真的不算什么事儿,但是小编真的发现excel在日常生活中的作用真的太多了,就比如抛硬币这个实验吧,下面我们就使用excel来实现这个过程。

开启分步阅读模式

工具材料:

excel2013

电脑

*** 作方法

01

打开excel,先做一个记录硬币正反面情况的表格,就两列,使用序列填充第一列编号到1000,如图所示

02

然后切换到数据选项卡,选择数据分析,如图所示

如果你的电脑上没有这一项,可以查看第六步

03

在d出数据分析对话框里面选择“随机数生成器”,点击确定

04

在分布项选择“伯努利”,随机数个数设置1000,P(A)=05

输出区域选择b2,点击确定

05

可以看到在b列已经产生了模拟的结果,0和1,我们使用1表示正面,0表示反面

在旁边建立一个简单的统计表格,比如正面,在单元格里面输入“=COUNTIF(B2:B1001,1)”反面只要将1改为0就可以统计了

06

可能有的人电脑上并没有找到数据分析的选项,可以打开文件,点击选项,选择分析工具库,点击转到,勾选加载即可

#include<stdioh>

int main(void)

{

int n;//读入一个数,为结束的次数

int i;

int a[10];//10个硬币

int biaoji = 0;//当这个标记能被3或7整除,说明恰好数了3次或7次

scanf("%d", &n);

for (i = 0; i < 10; i++) //将硬币都初始化为正面的状态,即1

a[i] = 1;

biaoji = 1;//因为a[]的下标不允许超过9,故要重置

a[biaoji - 1] = !a[biaoji - 1];//改变硬币的状态

for (i = 0; i < 10; i++)

printf("%d", a[i]);

return 0;

}

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接 *** 作,因此既能够用于开发系统程序,也可用于开发应用软件。

这个很简单的,你想的太复杂了

A=rand(1000,4);

b=A>05;

c=sum(b,2);

d=find(c==3);

P=A(d,:);

p=length(d)/1000;

这个程序就能实现了,P就是你需要记录的满足的数据,p是出现的概率,你会发现p大约为1/4

7行代码即可写出程序,详细步骤:

1、首先打开python自带的IDLE,打开IDLE并ctrl+n新建如图界面。

2、导入random模块的choice功能。

3、在列表中放置up和down这两个元素,这里表示正面朝上和正面朝下。因为不考虑硬币立着的奇葩设定,所以只加这个上和下。并且把列表赋予给coin这个变量。

4、接下来使用for循环来遍历,range后面为抛硬币次数,这里我想程序运行一次只抛硬币一次,所以range后面设置为1。

5、这一行,就是if判断了,如果随机从列表中抽取到了up。

6、那么就要输出“正面”。

7、否则,就输出“反面”。

8、至此此代码完成,按F5即可运行,运行一次就抛一次。

int z=0; //记录正面次数

int f=0; //记录反面次数

for(int i=0;i<1000;i++){

if((int)(Mathrandom()2)==0){

z++; //产生随机数为0时 正面出现次数+1 否则出现的为反面

}else{

f++;

}

}

Systemoutprintln("正面出现次数"+z);

Systemoutprintln("反面出现次数"+f);

以上就是关于用c语言模拟抛硬币的试验全部的内容,包括:用c语言模拟抛硬币的试验、C++写一个程序模拟抛硬币,统计随机抛100次得到的正面和反面的次数并输出结果。求大神。。。。、如何用计算机模拟掷硬币实验有清零掷一次掷多次等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10148015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存