2016 - 2024

感恩一路有你

随机生成指定范围的日期 世界上真的有随机数存在么?

浏览量:3042 时间:2023-05-08 17:06:35 作者:采采

世界上真的有随机数存在么?

从软件的角度来说,如果是电脑占卜,需要用随机数,电脑里的随机数是假随机数。经过这么多年的编程,我还没有 我没见过任何能产生真随机数的东西。

但是随机数可以通过光子纠缠产生。

根据现代科学的定义,产生真随机数至少有两个条件:

1.真随机数序列是不可预测的,不可能重复生成两个相同的真随机数序列。

2.真正的随机数只能由一些随机的物理过程产生。比如:放射性衰变、电子设备的热噪声、宇宙射线的触发时间等。

在计算机中,为了满足信息熵的特性,经常使用信息源,包括用户和信息源人的反应或者一系列排列变形后的高频时钟,或者用户路径的坐标 的鼠标移动,这在一般程序中很少触及,在我看来。因此,计算机上的占卜聚会让 我们不谈如何处理真随机数,以及如何在获得真随机数时改变它们。再深入一点,就需要讲世界的本质之类的哲学命题,暂且不提。就现在的占卜程序主要是线上来说,和时间相关的占卜可能还是可以商量的。但不适合随机性要求强的占卜。

1.如何产生一定范围内的随机数?

直接的方法是:

rand() % N

返回一个从0到N-1的数字。但是这种方法不好,因为很多随机数生成器的低阶位都不是随机的。更好的方法是:

(int)((double)RAND()/((double)RAND _ MAX 1)* N)

如果你不 t想用替身,另一种是:

RAND()/(RAND _ MAX/N ^ 1)

两种方法都需要知道RAND_MAX,并且假设n比RAND_MAX小很多。ANSI规定标准头文件stdlib.h包含RAND_MAX的#define。对了,RAND_MAX是一个常数,它告诉你C库函数rand()的固定范围。你可以 不要将RAND_MAX设置为其他值,您可以 t要求rand()返回其他范围内的值。如果您使用的随机数生成器返回0到1的浮点数。值,要得到0到N-1范围内的整数,只需将随机数乘以N。

2.为什么每次执行程序时rand()都以相同的顺序返回数字?

可以调用srand()来初始化伪随机数生成器的种子。传递给srand()的值应该是一个实随机数,比如当前时间:

#包含ltstdlib.hgt

#包含lttime.hgt

srand((unsigned int)time((time _ t *)NULL))

请注意,在程序执行过程中多次调用srand()并不一定有帮助!唐 每次调用rand()之前,不要调用srand()来获取a "真随机数 "!

我需要随机的真/假值,所以我直接使用rand()% 2,但是我得到的是交替的0,1,0,1,0。

这是一个很差的伪随机数发生器,低位不随机!不幸的是,一些系统提供了这样的伪随机数发生器。请尽量使用高阶位,详见本文第1点。

如何在excel表格中随机生成指定范围内的一组数据?

利用excel随机函数实现一定范围内数据的随机变化。

1.打开excel程序,在任意单元格中输入公式RAND()*(100-10) 10,excel会生成一个10-100随机数。其中所述rand函数生成大于0且小于1的随机数。

2.如果想要某个区间的随机整数,可以用RANDBETWEEN函数来实现。在任意单元格中输入公式RANDBETWEEN(10,100)将生成一个介于10和100之间的随机整数,其中第一个参数是要返回的最小整数。Number,第二个参数是要返回的最大整数,两个参数缺一不可。

程序 rand RAND 范围 时间

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。