作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
random.normalvariate()
和有什么区别?和 random.gauss()
?
它们采用相同的参数并返回相同的值,执行基本相同的功能。
我从 previous answer 了解到那random.gauss()
不是 thread safe ,但这在这种情况下意味着什么?程序员为什么要关心这个?换一种说法,为什么 Python 的“随机”中同时包含线程安全和非线程安全版本?
最佳答案
这是一个有趣的问题。一般来说,了解两个 python 实现之间区别的最好方法是自己检查代码:
import inspect, random
str_gauss = inspect.getsource(random.gauss)
str_nv=inspect.getsource(random.normalvariate)
然后打印每个字符串以查看来源有何不同。快速浏览一下代码会发现,它们不仅在多线程方面表现不同,而且算法也不相同;例如,根据 str_nv
中的以下注释,normalvariate
使用称为 Kinderman and Monahan 方法的方法:
# Uses Kinderman and Monahan method. Reference: Kinderman,
# A.J. and Monahan, J.F., "Computer generation of random
# variables using the ratio of uniform deviates", ACM Trans
# Math Software, 3, (1977), pp257-260.
关于python - python中的random.normalvariate()和random.gauss()有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749133/
random.normalvariate() 和有什么区别?和 random.gauss() ? 它们采用相同的参数并返回相同的值,执行基本相同的功能。 我从 previous answer 了解到那
我是一名优秀的程序员,十分优秀!