本文解决了根据给定分布生成随机数的挑战。特别是,重点是输入中概述的特定分布:
1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2
可以开发用于生成的定制解决方案根据给定分布的随机数。这涉及创建累积密度函数并根据 0 到 1 之间随机生成的值选择相应的值。但是,许多现有模块可以简化此任务,无需手动编码。
其中一个模块是 scipy.stats.rv_discrete,它允许您通过其 value 参数指定概率。要生成随机数,可以调用分布对象的 rvs() 方法。
另一种选择是使用 numpy.random.choice()功能。它接受值列表并使用 p 关键字参数分配概率。例如:
numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
对于 Python 3.6 及更高版本,您可以利用标准库中的 random.choices() 。这是一个示例:
import random random.choices(range(1, 7), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
以上是如何在Python中生成具有特定分布的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!