我有一个问题,它显示客户以每小时7的速度进入酒吧,问题表明我需要使用random.expovariate()并生成显示100个到达间隔时间的直方图。 到目前为止我有这个
import numpy as np
from matplotlib import pyplot as plt
import random
def customers():
x=np.random.expovariate(7,100)
plt.hist(x,100)
plt.axis([-0,100,0,100])
plt.show()
return True
def main():
global history
print(customers())
if __name__ == "__main__":
main()
我收到错误
AttributeError: 'module' object has no attribute 'expovariate'
此外,我不是100%这是我将如何显示图表,我已经研究过它,并没有在任何地方找到一个明确的答案! 希望你能帮忙
答案 0 :(得分:1)
这是让你入门的东西:
import numpy as np
from matplotlib import pyplot as plt
import random
def customers():
x = [random.expovariate(7) for r in xrange(100)]
plt.hist(x,10)
plt.show()
return True
def main():
global history
print(customers())
if __name__ == "__main__":
main()
您的主要问题是:
您拨打的是np.random.expovariate()
而不是random.expovariate()
random.expovariate()
需要1个参数而不是2个
random.expovariate()
只生成一个数字,以创建您需要多个的直方图。在上面我创建了一个expovariate随机数列表。