我想实现功能func()来完成以下任务:
汽车的平均重量为m kg,标准偏差为s kg。您希望所有汽车的哪一部分重量超过k千克(概率必须为<1)?

import scipy.stats as sts
def func(m, s, k):
  norm_rv = sts.norm(loc=m, scale=s)
  return round(norm_rv.cdf(k), 4)
print('Result:', func(25, 3, 27))


结果为0.7475,但必须为0.2546
我做错了什么?

最佳答案

norm_rv.cdf(k)返回随机变量取小于或等于k的值的概率。

您的实现应该是

import scipy.stats as sts
def func(m, s, k):
    norm_rv = sts.norm(loc=m, scale=s)
    return round(1 - norm_rv.cdf(k), 4) # This is where the change is
print('Result:', func(25, 3, 27))

关于python - 分布密度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51369303/

10-12 17:04
查看更多