随机数就是就随机数种子中取出的数。种子就是个序号,这个序号交给一个数列管理器,通过这个序号,你从管理器中取出一个数列,这个数列就是你通过那个序号得到的随机数。
但这个随技术并不真正随机。因为它是通过某个算法的得到。也就是说你给数列管理器同一个序号将得到同样一个“随机”数列。
也就是说种子和随机数列是一一对应的。{An}=f(x), x 就是种子,F()是算法,{An}是数列,这个数列看上去是随机的,这是因为An的通项很复杂。
例如:
从1、2、3、4、5、6、7、8、9、0这十个数中随机取出一个数,取出的数是6的话,那么6就叫随机数。十个数字就叫随机数种子。
如果是从1到50之间取数字,取出的数字叫随机数,这1到50那50个数字就叫随机数种子。
扩展资料:
根据密码学原理,随机数的随机性检验可以分为三个标准:
统计学伪随机性。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。
密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。
真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。
相应的,随机数也分为三类:
伪随机数:满足第一个条件的随机数。
密码学安全的伪随机数:同时满足前两个条件的随机数。可以通过密码学安全伪随机数生成器计算得出。
真随机数:同时满足三个条件的随机数。
参考资料来源:百度百科--随机数
参考资料来源:百度百科 --随机数种子
随机数在科学研究与工程实际中有着极其重要的应用!
简单来说,随机数就是一个数列,这个数列可能满足一定的概率分布,也许其满足的分布并不为我们所知。
不知道你是否知道一个经典的例子:“使用一根针和两条线求圆周率”(如果不知到你可以搜一下)。这个实验我们可以使用数学模拟(蒙特卡罗模拟)的方法来进行,这样可以最大限度的节约实验所消耗的时间(使用计算机),也在一定程度上剔除了人为因素的影响。但有一个前提必须考虑,就是模拟的随机性要好。怎样体现呢,这时就需要使用“好”的随机数来替代我们的物理实验。
据我所知,随机数在科学预测上有着非常重要的应用!还有密码学中,随机数也是基础之一。
数学方法产生随机数应该称之为“伪随机数”,只有使用物理方法才能得到真正的随机数!
为了得到数学上的伪随机数,我们就要研究“为随机数发生器”!
通常,0-1区间上的均匀随机数是基础的基础,因此,大量的工作是围绕它展开的!在此基础之上,又可以得到符合正态分布,beta分布等的伪随机数。
“种子”是什么呢?
经典的伪随机数发生器是这样的:
X(n+1)= a * X(n) + b
显然通过上式我们能够得到一个数列,前提是X(0)应该给出,依次我们就可以算出X(1),X(2)...;当然不同的X(0)就会得到不同的数列。
可以说:“X(0)”就是种子。
对于一个应用级的伪随机数发生器,所有的“伪随机数”,均匀的分布于一个“轨道”上,几乎所有的数都可以做为种子。数字“0”,有时是一个特例,不能作为种子,当然它取决于你使用的随机数发生器!
呵呵,楼上说的言简意赅,但那个函数并不复杂,你可以搜一下“素数模伪随机数发生器”
X(n+1)= a * X(n),
只不过这个a的确定不是太简单,要求随机性好(期望0.5,标准差1/12);周期长!
当然还有更好的发生器,周期可达2^6xxxx - 1(具体的忘了)!
我的理解啊,大家探讨:
种子就是个序号,这个序号交给一个数列管理器,通过这个序号,你从管理器中取出一个数列,这个数列就是你通过那个序号得到的随机数。但这个随技术并不真正随机。因为它是通过某个算法的得到。也就是说你给数列管理器同一个序号将得到同样一个“随机”数列。
也就是说种子和随机数列是一一对应的。{An}=f(x), x 就是种子,F()是算法,{An}是数列,这个数列看上去是随机的,这是因为An的通项很复杂。