在jvm(scala、java、kotlin、jruby等)上,以下结果产生一个单一变量,该变量被反复查询以获得新的随机值:
IntStream.range(0,10).forEach( __ -> System.out.println(rand.nextFloat()));
python中是否有一个与next[Float | Double | Int]等价的函数?如果不是,调用时引擎盖下会发生什么
import random
for i in range(10):
print(str(random.random()))
{
从源头上说,
所以它创建了一个随机实例
https://github.com/python/cpython/blob/3.9/Lib/random.py
是的,
random
库保存着伪随机生成器的单个实例。从docs开始:是的,系统时钟用于为RNG播种,除非操作系统提供更好的功能:
碰巧
random
模块中的所有可调用项都是函数,人们可以终生编写Python代码,而不知道在这种特定情况下,与其他模块不同,这些可调用项是random.Random()
单个实例的别名所以,简而言之,“随机库本身是否持有一个随机引用?”。是的,它在随机模块上作为
random._inst
,并且在random.py
模块文件的最后一行,这个实例上的方法被别名为模块级可调用函数(带有一堆randint = _inst.randint
语句)这种设计的一个有趣之处是,虽然
_inst
和默认可调用项是random.Random
的实例,但随机模块还提供了SystemRandom
类,该类使用O.S.随机数生成器作为源,在大多数情况下,它的一个实例可以使用高级方法作为可靠的随机数生成器,而不必依赖os.urandom()
提供的原始字节相关问题 更多 >
编程相关推荐