random.shuffle(lst_shuffle, random.random)我知道后半部分是一个可选的论点。但它到底能做什么。我不明白这是什么意思。这是医生寄来的。
Random.random()返回范围内的下一个随机浮点数[0.0,1.0]。
我也看到了,这是0,0,1,0的范围吗?
Pseudorandom number generators
Most, if not all programming languages have libraries that include a pseudo-random
number generator. This generator usually returns a random number between 0 and 1 (not
including 1). In a perfect generator all numbers have the same probability of being selected but
in the pseudo generators some numbers have zero probability.发布于 2009-12-25 15:39:02
第二个参数用于指定要使用的随机数生成器。如果您需要/拥有比random.random“更好”的东西,这可能很有用。安全敏感的应用程序可能需要使用加密安全的随机数生成器。
random.random和random.random()的区别在于,第一个是对生成简单随机数的函数的引用,第二个是实际调用该函数。
如果你有另一个随机数发生器,你想用,你可以说
random.shuffle(x, my_random_number_function)至于random.random (默认生成器)所做的事情,它使用一个名为梅森龙卷风的算法在0到1之间创建一个看似随机的浮点数(不包括1),该区间中的所有数字都是相同的可能性。
间隔从0到1只是一个惯例。
发布于 2009-12-25 15:43:17
第二个参数是函数,它被调用以产生随机数,然后用来对序列进行洗牌(第一个参数)。如果不提供自己的函数,则使用的默认函数是random.random。
如果要自定义洗牌的执行方式,则可能需要提供此参数。
并且您的自定义函数必须返回范围[ 0.0,1.0) -0.0包含的数字,不包括1.0。
发布于 2009-12-25 15:39:09
医生们继续说:
可选参数随机是一个0参数函数,在[0.0,1.0]中返回一个随机浮点数;默认情况下,这是函数随机()。
这意味着您可以指定自己的随机数生成器函数,或者告诉模块使用默认的random函数。第二个选项几乎总是最好的选择,因为Python使用了相当好的PRNG。
它所期望的函数应该在[ 0.0,1.0 ]范围内返回一个浮点伪随机数,这意味着包含0.0,而不包括1.0 (即0.9999是要返回的有效数字,但1.0不是)。理论上,这个范围内的每一个数字都应该以相同的概率返回(即这是一个线性分布)。
https://stackoverflow.com/questions/1961340
复制相似问题