该模块实现了各种分布的伪随机数生成器。
对于整数,有一个范围的统一选择。对于序列,有一个随机元素的统一选择,一个生成列表随机排列的函数,以及一个不替换的随机抽样函数。
在实线上,有计算均匀、正态(高斯)、对数正态、负指数、伽玛和贝塔分布的函数。对于生成角度分布,可以使用vonmises分布。
警告
参见
松本和西村,“MersenneTwister:A623维均布均匀伪随机数发生器”,《ACM建模与计算机模拟学报》第8卷第1期,1998年1月,第3-30页。
初始化随机数生成器。
如果a是int,直接使用。
在3.2版更改:移到使用字符串种子中所有位的版本2方案。
生成n随机字节。
3.9新版功能.
返回从中随机选择的元素range(start,stop,step).这相当于choice(range(start,stop,step)),但实际上不构建范围对象。
返回随机整数N这样的话a<=N<=b.Aliasrandrange(a,b+1).
在3.9版更改:此方法现在接受0k.
3.6新版功能.
无序播放序列x就位。
要随机播放不可变序列并返回新的随机播放列表,请使用sample(x,k=len(x))相反。
注意,即使是小的len(x),的排列总数x可以比大多数随机数生成器的周期快速增长。这意味着一个长序列的大多数排列永远不会产生。例如,长度为2080的序列是最大的,可以在Mersenne捻线机随机数生成器的周期内匹配。
Deprecatedsinceversion3.9,willberemovedinversion3.11:可选参数随机的.
返回Ak从填充序列或集合中选择的唯一元素的长度列表。用于不更换的随机取样。
返回一个新列表,其中包含填充中的元素,同时保持原始填充不变。结果列表按选择顺序排列,这样所有子片也将是有效的随机样本。这使得抽奖优胜者(样本)可以分为特等奖和第二名优胜者(子执照)。
重复的元素可以一次指定一个,也可以仅使用可选关键字指定计数参数。例如,sample(['red','blue'],counts=[4,2],k=5)等于sample(['red','red','red','red','blue','blue'],k=5).
在3.9版更改:增加了计数参数。
以下函数生成特定的实值分布。函数参数是根据分布方程中的相应变量命名的,这在普通数学实践中是常用的;这些方程中的大多数都可以在任何统计文本中找到。
返回范围[0.0,1.0]中的下一个随机浮点数。
返回随机浮点数N这样的话a<=N<=b对于a<=b和b<=N<=a对于b 终点值b根据公式中的浮点舍入,可以包含在范围内,也可以不包含在范围内。a+(b-a)*random(). 返回随机浮点数N这样的话low<=N<=high和指定的mode在这些界限之间。这个low和high边界默认为零和一。这个mode参数默认为边界之间的中点,给出对称分布。 β分布。参数的条件是alpha>0和beta>0.返回值的范围介于0和1之间。 指数分布。兰伯德是1.0除以期望的平均值。它应该是非零的。(参数将被称为“lambda”,但这是python中的保留字。)如果兰伯德是正的,如果兰伯德是否定的。 伽马分布。(Not伽玛函数!)参数的条件是alpha>0和beta>0. 概率分布函数为: 对数正态分布。如果你取这个分布的自然对数,你会得到一个平均数的正态分布。mu和标准偏差西格玛.mu可以有任何价值,并且西格玛必须大于零。 正态分布。mu是中庸,而且西格玛是标准偏差。 mu是平均角,以0到2之间的弧度表示*pi和卡帕浓度参数,必须大于或等于零。如果卡帕等于零,此分布在0到2范围内减小为均匀随机角*pi. 帕累托分布。阿尔法是形状参数。 威布尔分布。阿尔法是比例参数和beta是形状参数。 有时,能够再现由伪随机数生成器给出的序列是有用的。通过重新使用种子值,只要多个线程没有运行,相同的序列就应该可以从一个运行到另一个运行。 大多数随机模块的算法和种子设定函数在不同的python版本中都会发生变化,但有两个方面保证不会发生变化: 基本示例: 下面的食谱采用了不同的方法。间隔中的所有浮点都是可能的选择。尾数来自范围内整数的均匀分布22≤mantissa<23。指数来自一个几何分布,其中的指数小于-53出现的频率是下一个较大指数的一半。 >>>fr=FullRandom()>>>fr.random()0.05954861408025609>>>fr.expovariate(0.25)8.87925541791544该配方在概念上等同于从范围内的2?的所有倍数中选择的算法0.0≤x<1.0。所有这些数字都是均匀分布的,但大多数都必须向下舍入到最接近的可表示的Python浮点数。(值2?是最小的非正规化浮点数,等于math.ulp(0.0)。)