什么是随机数?

作者&投稿:类翟 (若有异议请与网页底部的电邮联系)
~ 问题一:什么是随机数? 随机数就是计算机随机产生的数字序列。伪随机数序列看上去是随机的,但是反复执行程序会发现每次程序所产生的序列是重复的。可以用srand来避免出现伪随机数,他unsigned类型的数据作参数并未函数rand设置随机数种子。
c代码:
#include
1.
i=rand();产生0到RAND_MAX(32767)之间的整数
2.
unsigned seed;
srand(seed);设置种子
i=rand();

问题二:真随机数的定义是什么 从软件的角度来说,如果是计算机起卦,则要用到随机数,而电脑中的随机数是假的随机数,搞那么多年程序,我还没看到过什么玩意能够有真随机数,按现代科学定义的真随机数的产生条件有起码两个:
1、真随机数数列是不可预计的,因而也不可能重复产生两个相同的真随机数数列。
2、真随机数只能用某些随机物理过程来产生。例如:放射性衰变、电子设备的热噪音、宇宙射线的触发时间等等。
在计算机中,为了满足信息熵的特性,常常是用到的信息源包括用户的人为反应或某种经过排列变形后的高频时钟的序列或者是用户运动鼠标的路径的坐标等,这在一般的程序里据我看是很少触及到的。因此,计算机上的起卦方法先不谈真随机数的如何的处理问题,还有取到了数又该如何变化的问题。如果更深化的话,还需要要论及世界的本质之类的哲学命题,暂且不表。就目前起卦程序主要在网上起而言,关联于时间的起卦法也许还有可商议之处,而对随机要求性较强的起卦方法是很不适合的。
1. 如何产生一定范围内的随机数?
直接的方法是:
rand() % N;
返回从 0 到 N - 1 的数字。但这个方法不好,因为许多随机数发生器的低位比特并不随机。一个较好的方法是:
(int)((double)rand() / ((double)RAND_MAX + 1) * N);
如果你不希望使用 double,另一个方法是:
rand() / (RAND_MAX / N + 1);
两种方法都需要知道 RAND_MAX,而且假设 N 要远远小于 RAND_MAX。ANSI 规定标准头文件 stdlib.h 中包含 RAND_MAX 的 #define。顺便提一下,RAND_MAX 是个常数,它告诉你 C 库函数 rand() 的固定范围。你不可以设 RAND_MAX 为其它的值,也没有办法要求 rand() 返回其它范围的值。如果你用的随机数发生器返回的是 0 到 1 的浮点值,要取得范围在 0 到 N - 1 内的整数,只要将随机数乘以 N 就可以了。
2. 为什么每次执行程序,rand() 都返回相同顺序的数字?
你可以调用 srand() 来初始化伪随机数发生器的种子,传递给 srand() 的值应该是真正的随机数,例如当前时间:
#include
#include
srand((unsigned int)time((time_t *)NULL));
请注意,在一个程序执行中多次调用 srand() 并不见得有帮助!不要为了取得“真随机数”而在每次调用 rand() 前都调用 srand()!
3. 我需要随机的真/假值,所以我用直接用 rand() % 2,可是我得到交替的 0, 1, 0, 1, 0 。
这是个低劣的伪随机数生成器,在低位比特中不随机!很不幸,某些系统就提供这样的伪随机数生成器。请试着使用高位比特,具体请参考本文第 1 点。

问题三:c语言随机数函数是什么? rand(产生随机数)
相关函数
srand
表头文件
#include
定义函数
int rand(void)
函数说明
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。
返回值
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。
范例
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include
main()
{
int i,j;
for(i=0;i
定义函数
void srand (unsigned int seed);
函数说明
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
返回值
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include
#include
main()
{
int i,j;
srand((int)time(0));
for(i=0;i>

问题四:C语言中产生随机数的函数是什么? #include
#include
#include
void main()
{
int i;
srand((unsigned)time(NULL));
i = rand() % 100;
}这样产生的随机数就是0-99之间的,
这二个函数的工作过程如下:
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

问题五:随机数的计算公式是什么? 为追求真正的随机序列,人们曾采用很多种原始的物理方法用于生成一定范围内满足精度(位数)的均匀分布序列,其缺点在于:速度慢、效率低、需占用大量存储空间且不可重现等。为满足计算机模拟研究的需求,人们转而研究用算法生成模拟各种概率分布的伪随机序列。伪随机数是指用数学递推公式所产生的随机数。从实用的角度看,获取这种数的最简单和最自然的方法是利用计算机语言的函数库提供的随机数发生器。典型情况下,它会输出一个均匀分布在0和1区间内的伪随机变量的值。其中应用的最为广泛、研究最彻底的一个算法即线性同余法。
线性同余法LCG(Linear Congruence Generator)
选取足够大的正整数M和任意自然数n0,a,b,由递推公式:
ni+1=(af(ni)+b)mod M i=0,1,…,M-1
生成的数值序列称为是同余序列。当函数f(n)为线性函数时,即得到线性同余序列:
ni+1=(a*ni+b)mod M i=0,1,…,M-1
以下是线性同余法生成伪随机数的伪代码:
Random(n,m,seed,a,b)
{
r0 = seed;
for (i = 1;i 问题六:随机是什么意思 随机
1.
(1) [according to situation] 依照情势
必须具有一定的随机应变的能力,才能完成任务
2.
(2) [random]∶自由组合
随机抽样


大脑产生的随机数是真的随机数么?
其实你想一下各种魔术和心里预测的游戏,就会知道,大脑告诉你的数字是会受到身边信息的暗示和影响的。即便在你没有意识到的时候。我记得听本科老师讲蒙特卡洛方法计算的时候说过,世上没有一种办法可以产生真正数学意义上的随机数,我们使用的,往往是一段很长的数字序列,从中截取一段作为近似随机。只要...

Java中的随机数是指什么
java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器即Random对象产生以后,可以通过对象调用不同的函数:nextInt(...

电脑取随机数是什么原理,是真正的随机数吗?
电脑所产生的随机数大部分为伪随机数,通过算法或者编一段程序实现,但是计算机本身就是一种确定的或固定的设备,编程时写的代码也是固定的,用的算法也是固定的,通过这些固定的东西生成真随机显然不太可能,但是我们可以引入系统意外的变量,通过计算机内的时钟,io请求响应时间,键盘的敲击速度,鼠标移动...

什么是随机数表法?
随机数表法是一种常用的抽样方法,它从一个预先编制好的随机数表中随机抽取数字,以决定样本的选择。这种方法广泛应用于统计学、市场调研、科学实验等领域,用于保证抽样的随机性和公正性。随机数表法的核心在于随机数表的编制。这个表通常由一系列随机生成的数字组成,每个数字的出现概率是相等的。这些...

随机数的计算公式是什么?
随机数的计算公式主要涉及伪随机数生成算法,其中最常见的是线性同余法(Linear Congruential Generator,LCG)。LCG的基本原理是通过递推公式来生成均匀分布在特定范围内的伪随机数。公式如下:ni+1 = (a * ni + b) mod M 其中,ni+1是下一个随机数,n0是初始值,a、b是常数,M是模数,通常取...

什么是随机数表法?
随机数表法是一种常用的统计学方法,用于生成随机数序列,进而在随机抽样、模拟实验等领域中发挥作用。这种方法的核心在于使用一个预先编制好的随机数表,表中的每个数字都是随机生成的,并且按照一定的规律排列。在实际应用中,随机数表法通常用于随机抽样。例如,在市场调研中,我们可能需要对某一地区的...

随机数算法是什么?
在密码技术中,随机序列是非常重要的,比如密钥产生、数字签名、身份认证和众多的密码学协议等都要用到随机序列。所以产生高质量的随机数序列对信息的安全性具有十分重要的作用。随机数分为真随机数和伪随机数,计算机通过算法产生的随机数并不上真正意义上的随机数,很容易被破解,只能称为伪随机数。若要...

一到三千的随机数是什么
一到三千的随机数是一到三千里的任意数字。这个是说不准的,每个数都有可能是那个随机数,每个数成为随机数的概率都为三千分之一。

世界上真的有随机数存在么
存在,科学家在证明多元宇宙的时候,发射光子,发现它不是从本来通过计算的那个位子接收到。而是在别的地方随机出现的。这是别的平行宇宙的影响,对于我们宇宙是相当于没受任何因素的

随机数的产生方法是什么?
以word2016版本为例,产生随机数的方法步骤如下:步骤一、打开需要插入随机数的word文件。步骤二、选择工具栏中的“插入”标签,然后点击“对象”按钮。步骤三、在对象类型中选择“Microsoft Excel Binary Worksheet”,然后点击确定。步骤四、在插入的Excel对象框的A1单元格中输入“=ROUND(RAND()*10+40,...

格尔木市17217145878: 随机数(统计学术语) - 搜狗百科
度亮莱美: 随机数是专门的随机试验的结果. 随机数最重要的特性是:它所生成的后面的那个数与前面的那个数毫无关系. 首先需要声明的是,计算机不能生成绝对随机的随机数(“真随机数”),只能生成“伪随机数”. 其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会生成一串绝对随机的随机数. 计算机只能生成相对的随机数,即伪随机数. 未来的量子计算机有可能生成基于自然规律的不可重现的“真随机数”.

格尔木市17217145878: 随机数的含义是什么?随机数的主要应用是什么? -
度亮莱美:[答案] 答案:在一定的范围内随机产生的数,并且得到这个范围内的每一个数的机会相同,随机数主要用来模拟大量重复非试验,从而求出几何概型的概率.

格尔木市17217145878: 真随机数的定义是什么 -
度亮莱美:[答案] 从软件的角度来说,如果是计算机起卦,则要用到随机数,而电脑中的随机数是假的随机数,搞那么多年程序,我还没看到过什么玩意能够有真随机数,按现代科学定义的真随机数的产生条件有起码两个: 1、真随机数数列是不可预计的,因而也不...

格尔木市17217145878: 什么是随机数及随机数种子,能不能详细通俗介绍一下? -
度亮莱美: 随机数在科学研究与工程实际中有着极其重要的应用! 简单来说,随机数就是一个数列,这个数列可能满足一定的概率分布,也许其满足的分布并不为我们所知.不知道你是否知道一个经典的例子:“使用一根针和两条线求圆周率”(如果不...

格尔木市17217145878: 什么是正态分布的随机数 -
度亮莱美:[答案] 正态分布随机数则是各个数字的出现几率是满足正态分布的,越靠近中间的数字出现几率越大,越是在两边的出现几率越小. 一般使用平均分布随机数比较多,正态分布随机数一般是在做一些专业数学计算的时候才需要用到

格尔木市17217145878: 什么叫随机数基数? -
度亮莱美: 随机数基数:随机数种子,用来标识随机值(或序列)的那个数,起标签作用;相同的基数产生相同的随机值(或序列). 其目的在于重复获得相同的随机值(或序列). rand函数也是调用dos的时钟,进行的伪随机函数.你也可以使用时钟...

格尔木市17217145878: 什么是高斯随机数? -
度亮莱美: 均值为0,方差为1的随机数

格尔木市17217145878: 甚么是随机变量、随机数、随机数散布.它们之间的关系是甚么
度亮莱美: 根据随机 变量,产生1个随机数,若干个随机数 呈随机散布

格尔木市17217145878: excel 随机数 原理 -
度亮莱美: 随机数rand()的原理是产生0-1之间的随机数. 所以要产生0-9之间的随机数就是"=rand()*10",int()是保留整数的意思. 如果要产生10-20之间的随机数则是=rand()*10+10, 要产生10-20之间的整数就是=int(rand()*10+10).

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网