【发布时间】:2021-11-03 01:16:06
【问题描述】:
我有两个问题:
1- 此代码执行时间过长。知道如何让它更快吗? 使用下面的代码,我想生成 100 个介于 700 和 1200 之间的随机离散值。
我选择了weibull分布,因为我想生成故障率数据,请看下面的直方图。
import random
nums = []
alpha = 0.6
beta = 0.4
while len(nums) !=100:
temp = int(random.weibullvariate(alpha, beta))
if 700 <= temp <1200:
nums.append(temp)
print(nums)
# plotting a graph
#plt.hist(nums, bins = 200)
#plt.show()
print(nums)
我想生成这样的直方图: Histogram
2- 我有这个函数用于离散威布尔分布
def DiscreteWeibull(q, b, x):
return q**(x**b) - q**((x + 1)**b)
如何生成遵循此分布的随机值?
【问题讨论】:
-
什么是“离散”数?
-
您希望如何获得介于 700 和 1200 之间的值?威布尔函数是否曾经接近如此高的值?似乎生成超过 700 的值的概率接近于零。
-
对。当我在分配
temp的行之后添加一个打印语句时,我看到的大多数数字都低于 10 - 所以我想获得超过 700 的数字需要很长时间。 -
@SamMatzko 三是离散和连续分布。使用上面的代码,我想生成随机离散值
-
@not_speshal 我不明白你的意思。我只想生成 700 到 1200 之间遵循离散威布尔分布的随机数
标签: python math statistics probability weibull