Aha*_*gta 160 python random random-seed
我对random.seed()
Python中的内容有点困惑.例如,为什么下面的试验会做他们所做的(始终如一)?
>>> import random
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
7
Run Code Online (Sandbox Code Playgroud)
我找不到关于此的好文档.
Eri*_*inn 183
伪随机数生成器通过对值执行某些操作来工作.通常,此值是生成器生成的先前数字.但是,第一次使用生成器时,没有先前的值.
播种伪随机数生成器为其提供其第一个"前一个"值.每个种子值将对应于给定随机数发生器的生成值序列.也就是说,如果您提供两次相同的种子,则会获得两次相同的数字序列.
通常,您希望为随机数生成器设置一些值,该值将更改程序的每次执行.例如,当前时间是经常使用的种子.这种情况不会自动发生的原因是,如果您愿意,您可以提供特定的种子来获得已知的数字序列.
Rit*_*rwa 83
所有其他答案似乎都没有解释random.seed()的使用.这是一个简单的例子(来源):
import random
random.seed( 3 )
print "Random number with seed 3 : ", random.random() #will generate a random number
#if you want to use the same random number once again in your program
random.seed( 3 )
random.random() # same random number as before
Run Code Online (Sandbox Code Playgroud)
Yog*_*esh 26
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.seed(9002)
>>> random.randint(1, 10)
3
Run Code Online (Sandbox Code Playgroud)
你试试这个.假设'random.seed'给随机值生成器('random.randint()')赋值,该值基于该种子生成这些值.随机数的必要属性之一是它们应该是可再现的.一旦你把相同的种子,你得到相同的随机数模式.所以你从一开始就生成它们.你给它一个不同的种子,它以不同的初始(3以上)开始.
你已经给了一个种子,现在它会一个接一个地生成1到10之间的随机数.因此,您可以为一个种子值假设一组数字.
小智 11
通过对先前值的某些操作生成随机数.
如果没有先前的值,则自动将当前时间作为先前值.我们可以通过自己使用提供此前一个值,random.seed(x)
其中x可以是任何数字或字符串等.
因此,x
它实际上不是可以预测的完美随机数random.random()
.
random.seed(x)
因此,生成随机数实际上并不是随机的,因为它运行在算法上.算法总是根据相同的输入提供相同的输出.这意味着,它取决于种子的价值.因此,为了使其更随机,自动分配时间seed()
.
小智 8
Seed() can be used for later use ---
Example:
>>> import numpy as np
>>> np.random.seed(12)
>>> np.random.rand(4)
array([0.15416284, 0.7400497 , 0.26331502, 0.53373939])
>>>
>>>
>>> np.random.seed(10)
>>> np.random.rand(4)
array([0.77132064, 0.02075195, 0.63364823, 0.74880388])
>>>
>>>
>>> np.random.seed(12) # When you use same seed as before you will get same random output as before
>>> np.random.rand(4)
array([0.15416284, 0.7400497 , 0.26331502, 0.53373939])
>>>
>>>
>>> np.random.seed(10)
>>> np.random.rand(4)
array([0.77132064, 0.02075195, 0.63364823, 0.74880388])
>>>
Run Code Online (Sandbox Code Playgroud)
小智 7
# Simple Python program to understand random.seed() importance
import random
random.seed(10)
for i in range(5):
print(random.randint(1, 100))
Run Code Online (Sandbox Code Playgroud)
多次执行上述程序....
第一次尝试:打印5个随机整数,范围为1 - 100
第二次尝试:打印出上述执行中出现的相同的5个随机数.
第三次尝试:相同
.....所以
说明:每次运行上面的程序时,我们都将seed设置为10,然后随机生成器将其作为参考变量.然后通过做一些预定义的公式,它会生成一个随机数.
因此,在下一次执行中将种子设置为10再次将参考编号设置为10,并再次开始相同的行为....
一旦我们重置种子值,它就会给出相同的植物.
注意:更改种子值并运行程序,您将看到与前一个不同的随机序列.
小智 6
在这种情况下,random实际上是伪随机的.给定种子,它将生成具有相等分布的数字.但是使用相同的种子,它每次都会生成相同的数字序列.如果你想改变它,你将不得不改变你的种子.很多人喜欢根据当前时间或某事生成种子.
Imho,它用于在您random.seed(samedigit)
再次使用时生成相同的随机课程结果。
In [47]: random.randint(7,10)
Out[47]: 9
In [48]: random.randint(7,10)
Out[48]: 9
In [49]: random.randint(7,10)
Out[49]: 7
In [50]: random.randint(7,10)
Out[50]: 10
In [51]: random.seed(5)
In [52]: random.randint(7,10)
Out[52]: 9
In [53]: random.seed(5)
In [54]: random.randint(7,10)
Out[54]: 9
Run Code Online (Sandbox Code Playgroud)
小智 5
将seed(x)
生成一组随机数之前,并使用相同的种子产生相同随机数集。在重现问题的情况下很有用。
>>> from random import *
>>> seed(20)
>>> randint(1,100)
93
>>> randint(1,100)
88
>>> randint(1,100)
99
>>> seed(20)
>>> randint(1,100)
93
>>> randint(1,100)
88
>>> randint(1,100)
99
>>>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
299979 次 |
最近记录: |