我想清楚地解释一下random.Random函数/类到底做了什么。这就是Python的随机模块对它的看法。
绑定模块函数使用的随机数生成器基类。用于实例化随机实例以获取不共享状态的生成器。特别适用于多线程程序,为每个线程创建一个随机的不同实例,并使用跳转头()方法来确保每个线程看到的生成的序列不重叠。 如果您想使用自己设计的不同的基本生成器,也可以对类进行子类化:在这种情况下,重写以下方法:随机()、种子()、getstate()、setstate()和jumpahead()。可选地,实现getrandbit()方法,这样随机范围()可以覆盖任意大的范围。
我不明白这一点,因为我仍然是Python的初学者。我确实对基类和派生类有一点了解,这显然与此有关。
我尝试在Python中使用random.Random()函数/类,并发现了以下内容。
我希望我能得到一个简单的解释random.Random做什么,并解释为什么它只返回两个值。(我是初学者,所以请原谅我对这个问题的无知!)
欢迎对像seed()、getstate()、setstate()和jumpahead()这样的函数的工作方式或对任何这样解释的文档/书籍的引用进行任何解释。
发布于 2018-12-14 16:52:35
简单地说,random.Random()创建了一个伪随机数生成器,即一个对象,该对象生成一系列随机的数字(都是伪随机的)。
random.Random()接受一个可以是“string”、“int”(整数)或“float”(整数或非整数,如3.2或888)的对象。这个对象被称为种子,它可以用来创建一个生成特定伪随机数序列的对象。例如,你可以打电话-
random.Random(57),random.Random(888.6),random.Random("Hello World"),或random.Random(99898989),得到特定伪随机数序列的生成器。但是,只有在程序中需要可重复的“随机性”时,才应该指定种子。
然后,可以使用这个生成器从该序列中提取伪随机数:
# Create a generator without
# a seed, so that the pseudorandom
# sequence will almost surely differ
# from run to run
randomGen = random.Random()
# Generate a number in [0, 1)
number = randomGen.random()
# Generate an integer in [0, 5]
number = randomGen.randint(0, 5)请注意,示例将生成器从random.Random分配给一个名为randomGen的变量;通常,创建生成器本身并不有用。
https://stackoverflow.com/questions/53779251
复制相似问题