假设有n个对象x_1, x_2, ..., x_n,希望从中选出一个对象,使得选择的概率与某个数值u_i成正比。Numpy提供了相应的函数:
x, u = np.array([x_1, x_2, ..., x_n]), np.array([u_1, ..., u_n])
np.random.choice(x, p = u/np.sum(u))
然而,我发现这段代码有时会抛出ValueError错误,提示“概率不总和为1”。这可能是由于有限精度算术的四舍五入误差导致的。如何使该函数正常工作?