经典论文网 加入收藏  -  设为首页
您的位置:经典论文网 > 知识百科 > 正文
python中的随机数是怎么实现的
python中的随机数是怎么实现的
提示:

python中的随机数是怎么实现的

PYTHON中的伪随机数发生器用的是梅森旋转算法。
梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。
梅森旋转算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度运算库和GSL的默认伪随机数产生器。从C++11开始,C++也可以使用这种算法。
整个算法主要分为三个阶段:获得基础的梅森旋转链;对于旋转链进行旋转算法;对于旋转算法所得的结果进行处理。
算法实现的过程中,参数的选取取决于梅森素数,故此得名。
梅森素数由梅森数而来。所谓梅森数,是指形如2↑p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数。
例如4-1=3,8-1=7,16-1=15(不是素数),32-1=31,64-1=63(不是素数)等等。

伪随机和真随机区别
提示:

伪随机和真随机区别

计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。 1、随机性:完全乱序 2、不可推测性: 从已有的数,无法推测出下一个数; 3、不可重复性: 随机数之间不重复 真随机数是伴随着物理实验的,比如: 抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的 伪随机数是通过一定算法,获得一个随机的值,并不是真的随机。伪随机又分为强伪随机数和弱伪随机数。强伪随机数:更加贴近真随机数,满足特性的。随机性和不可推测性,难以预测。弱伪随机数:满足随机性,可以预测。

什么是伪随机和真随机
提示:

什么是伪随机和真随机

  真伪随机其实分别指的是几率和概率:

  1、伪随机是指概率。它出现得并不规律,但是大致上就是这么多次数。比如百分之十七,如果是每2000次为一周期,那么百分之十七意味着,尽管你不确定这340次究竟会什么时候出现,但2000次中必然出现340次,不多一次也不会少一次。貌似这就是伪随机了。概率事件之间相互影响,一旦这一次没有触发,那么下一次触发的概率就会变大。

  2、真随机是指几率。比如百分之十七的几率,意味着你这次触发特殊事件是百分之十七的可能性,下次也是,每一次都是。如果你这次失败,下次依然保持在17%的可能性。几率意味着事件之间毫无联系。几率是所有事件相互独立,单次可能性保持在一定的几率范围。

如何找到伪随机数规律?
提示:

如何找到伪随机数规律?

找到伪随机数规律的方法有:\x0d\x0a1、直接法(DirectMethod),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。\x0d\x0a2、逆转法(InversionMethod),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。\x0d\x0a3、接受拒绝法(Acceptance-RejectionMethod):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。\x0d\x0a因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定了整个随机数体系的优劣。下文研究均匀分布的PRNG。\x0d\x0a更多关于如何找到伪随机数规律,进入:https://www.abcgonglue.com/ask/4c03b21615821894.html?zd查看更多内容

如何找到伪随机数规律
提示:

如何找到伪随机数规律

  找到伪随机数规律的方法有:

  1、直接法(DirectMethod),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。

  2、逆转法(InversionMethod),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。

  3、接受拒绝法(Acceptance-RejectionMethod):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。

  因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定了整个随机数体系的优劣。下文研究均匀分布的PRNG。