热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多少个0到1之间的随机数之和大于1?

数学常数最令人着迷的就是,它们常常出现在一些看似与之毫不相干的场合中。随便取一个0到1之间的数,再加上另一个0到1之间的随机数,然后再加上一个0到1之间的随机数??直到和超过1为止。一个有趣的问题:平均需要加多少次,才能让和超过1呢?答案是e次,自然对数。

数学常数最令人着迷的就是,它们常常出现在一些看似与之毫不相干的场合中。 随便取一个 0 到 1 之间的数,再加上另一个 0 到 1 之间的随机数,然后再加上一个 0 到 1 之间的随机数??直到和超过 1 为止。一个有趣的问题:平均需要加多少次,才能让和超过 1 呢?答案是 e 次,自然对数。

下面用程序模拟:

#include 
#include 
#include 
#define NUM 11
int main()
{
	int sum = 0;
	int i, wait;
	double val, random;
	srand(time(NULL));
	for (i=0; i
    
    

程序运行结果:

  
0.857692
0.320536
第0次测试完毕
0.147221
0.663350
0.700186
第1次测试完毕
0.613086
0.967589
第2次测试完毕
0.633747
0.918577
第3次测试完毕
0.297678
0.709006
第4次测试完毕
0.580554
0.894955
第5次测试完毕
0.927702
0.112247
第6次测试完毕
0.578814
0.012268
0.030488
0.066317
0.048189
0.252083
0.439344
第7次测试完毕
0.238136
0.988189
第8次测试完毕
0.114628
0.657918
0.603290
第9次测试完毕
0.511704
0.642293
第10次测试完毕
平均需要 2.636364 次

下面我们修改下程序,比如测试10000组数据,然后算平均次数:

#include 
#include 
#include 
#define NUM 10000
int main()
{
	int sum = 0;
	int i, wait;
	double val, random;
	srand(time(NULL));
	for (i=0; i
    
    

程序运行结果:

平均需要 2.727400 次

这个值就非常接近自然对数e,其值约等于2.718281828。

那么我们可以打印出这100000个测试数据,然后统计,需要1个随机数和就大于等于1有几组测试数据,需要2个随机数和就大于等于1有几组测试数据。。。把其分布打印出来。

#include 
#include 
#include 
#define TIMES 100000
#define COUNT 11
int main(void)
{
	int i,j;
	double sum,ave;
	long int Sum =0;
	int count[TIMES] = {0};
	int number[COUNT] = {0};
	srand(time(NULL));
	for(i=0;iNUL 2>NUL");
	getch(); 
}

程序运行结果:

1       4       0.000040
2       49817   0.498170
3       33620   0.336200
4       12360   0.123600
5       3344    0.033440
6       744     0.007440
7       94      0.000940
8       14      0.000140
9       3       0.000030
10      0       0.000000
2.719190

本文地址:http://www.nowamagic.net/librarys/veda/detail/467,欢迎访问原出处。


推荐阅读
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 深入理解父组件与子组件的引用和访问
    本文详细介绍了如何在Vue.js中通过$children和$refs属性实现父组件对子组件的访问,并提供了具体的代码示例及最佳实践。 ... [详细]
  • 极大似然估计(MLE)及其3D可视化解析
    本文详细介绍了极大似然估计(Maximum Likelihood Estimation, MLE)的推导过程,并通过3D可视化展示其在概率密度函数中的应用。我们将探讨如何利用MLE来估计参数,以及它在实际问题中的重要性。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 探讨一个老旧 PHP MySQL 系统中,时间戳字段不定期出现异常值的问题及其可能原因。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 郑州大学在211高校中的地位与排名解析
    本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 电子元件封装库:三极管、MOS管及部分LDO(含3D模型)
    本资源汇集了常用的插件和贴片三极管、MOS管以及部分LDO的封装,涵盖TO和SOT系列。所有封装均配有高质量的3D模型,共计96种,满足日常设计需求。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
author-avatar
LY-李彦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有