php专区

 首页 > php专区 > PHP进阶 > 算法 > 多少个0到1之间的随机数之和大于1?

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

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

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

数学常数最令人着迷的就是,它们常常出现在一些看似与之毫不相干的场合中。 随便取一个 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,欢迎访问原出处。

多少个0到1之间的随机数之和大于1?
分享到:
C/MFC 折半查找(二分查找)
C/MFC 折半查找(二分查找) 折半查找的前提是已经对数据做好了排序,然后再折半查找。例如排序后的数据是1 5 12 35 64 78 89 123 456。你要查找12,首先用12跟上面排好顺序的9个数中间那个比较(64),12 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log...
大整数相加的实现思路
大整数相加的实现思路 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。比如下面问题: ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……