【发布时间】:2021-01-18 05:40:34
【问题描述】:
我正在使用随机数在基态一维框中绘制具有相同概率分布的粒子直方图。但是与原始分布相比,这些值在顶部被削减了。
这里是代码
from numpy import*
from matplotlib.pyplot import*
lit=[]
def f(x):
return 2*(sin(pi*x)**2)
for i in range(0,10000):
x=random.uniform(0,1)
y=random.uniform(0,1)
if y<f(x):
lit.append(x)
l=linspace(0,1,10000)
hist(lit,bins=100,density=True)
plot(l,f(l))
show()
如何改进此代码以匹配原始代码?
【问题讨论】:
-
试试这个
y<=f(x) -
@drum 没有变化
-
那你为什么要在 [0, 1] 范围内选择 y 呢?