`
rokuan
  • 浏览: 20490 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

投硬币概率模拟程序

阅读更多
#include <stdio.h>
#include <stdlib.h>

//头像面朝上的概率 
int heads()
{
	return rand() < RAND_MAX/2;
}

int main(int argc, char *argv[])
{
	int i, j, cnt; 
	//N为每次实验投币的次数,M为实验的次数 
	int N = atoi(argv[1]), M = atoi(argv[2]);
	int *f = malloc((N+1) * sizeof(int));
	for (i = 0; i <= N; i++)	f[i] = 0;
	for (j = 0; j < M; j++, f[cnt]++)
		for (cnt = 0, i = 0; i <= N; i++)
			if (heads()) cnt++;
	for (i = 0; i <= N; i++)
	{
		printf("%2d ", i);
		for (j = 0; j < f[i]; j += 10)	printf("*");
		printf("\n");
	}
}

执行结果如下:

不过有点疑惑的是这个结果并不是完全与概率学的正态分布吻合,有点小的偏差,而经过几次执行的结果好像都没有变化,这点有点疑问,可能和伪随机数的产生机制有关吧...
  • 大小: 4.9 KB
分享到:
评论

相关推荐

    模拟抛硬币

    假设抛硬币时正面得10分,反面得5分。...例如第一次运行程序时模拟了100次硬币抛掷,第二次运行程序时模拟了300次硬币抛掷,则可以得到一个抛掷400次的结果 在图形界面下完成1),输出要求用柱状图显示

    硬币的随机模拟实验matlab程序

    在MATLAB中,我们可以编写程序来实现这一模拟。实验的主要目的是理解随机实验的本质,熟悉样本点和样本空间的概念,并通过大量数据来揭示投硬币实验的规律。 实验方法的核心是通过计算机生成0和1,其中1代表硬币...

    555组成的“投硬币”电路.rar

    在这个特定的电路中,555定时器可能被用来模拟硬币的投掷过程,可能包括检测硬币的投入、处理硬币的物理特性(如重量、导电性)以及产生随机信号来模拟硬币正面或反面出现的概率。 描述中的信息虽然简洁,但我们...

    简单硬币投掷试验的计算机模拟

    一枚硬币,正面朝上的次数服从二项分布,可由此程序得出大量试验下投掷硬币正面向上的概率。并由matlab画图工具辨识出来

    抛硬币实验程序

    能模拟抛硬币实验并输出报告,实验次数越大越接近50%概率

    掷硬币问题期望最大化算法实现

    1. **主界面**:用户可以输入掷硬币的次数,并启动模拟。 2. **结果显示**:展示每次投掷的结果以及累计的正面和反面次数。 3. **参数估计**:根据EM算法的迭代,实时更新硬币正反面的概率。 4. **迭代次数**:用户...

    c++源代码,模拟抛硬币所得正面的频率图

    总的来说,这个C++项目是一个简单的概率模拟实践,涵盖了随机数生成、概率计算、循环控制、数据处理和可视化等多个方面。对于初学者来说,这是一个很好的学习和练习编程技能的机会。通过理解并运行这个代码,你可以...

    虚拟抛硬币程序.rar

    【虚拟抛硬币程序】是一个基于Visual Basic(VB)编程语言开发的应用,旨在模拟现实世界的硬币投掷,提供一个统计结果以及投掷次数和出现正面或反面的百分比的功能。这个程序对于初学者来说,是理解随机事件概率、...

    matlab抛硬币仿真

    通过MATLAB编写的抛硬币仿真程序,我们不仅能够直观地看到古典概型的基本特征,而且还能够深入理解随机性以及大数定律等概率论中的重要概念。此类仿真对于初学者来说是非常有用的工具,可以帮助他们更好地掌握概率论...

    抛硬币程序

    直接双击打开就可模拟抛硬币,非常方便!教概率的时候一定用的着!

    java实现的掷硬币

    游戏的核心功能是模拟硬币的正反两面随机出现的概率,以此来模拟掷硬币的过程。通过该程序,用户可以体验到模拟掷硬币的乐趣,并且能够统计出正面和反面出现的次数。 #### 二、技术栈与环境 1. **Java语言**: 项目...

    matlab gui 描述的三个硬币的分布情况

    在MATLAB GUI(图形用户界面)中,设计一个应用程序来展示多个硬币的分布情况,是一种直观的教学工具,尤其适用于概率论与统计学中的实验模拟。这个程序可以帮助用户理解随机事件,比如抛硬币,其结果的多样性以及...

    python+玩抛硬币游戏+easygui交互界面+结果可视化

    首先,`抛硬币随机游戏`是基于概率的模拟实验。在Python中,我们可以使用`random`模块来生成随机数,以模拟硬币的正反面。例如,`random.randint(0, 1)`会返回0或1,代表硬币的正面或反面。通过设置一定的次数,我们...

    基于MATLAB的经典概率问题研究.pdf

    文中随后介绍了MATLAB在概率论应用中的研究现状,包括利用计算机软件模拟抛硬币实验、在概率统计教学中运用MATLAB以及运用MATLAB实现中心极限定理的形象化教学。这些研究方法和视角为我们提供了分析概率问题的新思路...

    随机数类 c++实现 及随机数跑硬币的应用

    模拟抛硬币的应用场景可以非常广泛,比如模拟大量独立事件的概率研究,或者在游戏中的随机事件决策。通过上述的随机数类,我们可以方便地创建各种基于随机性的行为,使得程序的结果更加多样化和不可预测。 在实验3...

    频率与概率经典练习1含答案.doc

    3. 投针试验、随机调查和硬币投掷:这些题目涉及到概率的直观理解。概率论表明,长期来看,独立事件的概率会趋向于其理论概率。选项C错误,因为无论前5次掷出什么,第六次出现反面的概率仍然是1/2。 4. 家庭有两个...

    硬币翻转:简单有趣的硬币翻转,具有各种数据可视化

    标题中的“硬币翻转”是指一种常见的概率模拟实验,通常用于教学或研究随机事件的概率。在这个场景中,它被描述为一个具有数据可视化的应用,这意味着用户可以通过这个程序直观地观察和理解硬币翻转的结果,从而学习...

    c代码-抛硬币sss

    在编程领域,"c代码-抛硬币sss"这个标题暗示了一个使用C语言实现的程序,该程序模拟了抛硬币的过程。抛硬币是一个经典的概率问题,通常用于教学目的,帮助初学者理解随机数生成和条件语句的用法。在C语言中,我们...

    probability-calculation-.zip_概率统计

    例如,假设我们正在编写一个模拟抛硬币的程序,可以使用随机数生成器来模拟随机事件,其中正面朝上的概率为0.5,反面朝上的概率也为0.5。随机数生成器是概率统计在编程中的常见应用,它允许我们在代码中引入不确定性...

    概率统计实验报告.docx

    在程序代码中,张帅豪使用MATLAB内置的`binopdf`函数计算概率密度函数值,`binocdf`函数则用于计算累积概率。通过`plotyy`函数绘制了两个纵坐标,分别表示概率密度函数(pdf)和累积分布函数(cdf),这有助于直观地理解...

Global site tag (gtag.js) - Google Analytics