我想做的是制作一个高斯函数图。然后在空间中的任意位置选择随机数,例如 y=[0,1](因为它是标准化的)& x=[0,200]。然后,我希望它忽略曲线上方的所有值,只保留曲线下方的值。
import numpy
import random
import math
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from math import sqrt
from numpy import zeros
from numpy import numarray
variance = input("Input variance of the star:")
mean = input("Input mean of the star:")
x=numpy.linspace(0,200,1000)
sigma = sqrt(variance)
z = max(mlab.normpdf(x,mean,sigma))
foo = (mlab.normpdf(x,mean,sigma))/z
plt.plot(x,foo)
zing = random.random()
random = random.uniform(0,200)
import random
def method2(size):
ret = set()
while len(ret) < size:
ret.add((random.random(), random.uniform(0,200)))
return ret
size = input("Input number of simulations:")
foos = set(foo)
xx = set(x)
method = method2(size)
def undercurve(xx,foos,method):
Upper = numpy.where(foos<(method))
Lower = numpy.where(foos[Upper]>(method[Upper]))
return (xx[Upper])[Lower],(foos[Upper])[Lower]
当我尝试打印欠曲线时,出现错误:
TypeError: 'set' object has no attribute '__getitem__'
我不知道如何解决它。
正如你们所看到的,我在 python 和编程方面还是很新的,但是任何帮助都非常感谢,如果有任何问题,我会尽力回答。