首页 > 解决方案 > Python:如何将变量设置为加权列表中的随机值?

问题描述

我对编码很陌生,我无法找到上述问题的答案。这是我所拥有的:


E0 = 1
rho = 0.8

def sigma():
    numberlist = [0.5, 0.2, 0.14, 0.07]
    sigmanew = randomchoices(numberlist, weights=(5, 15, 30, 50), k=1)
    return sigmanew

def deriv(y, t, sigma, rho)
    E = y
    dEdt = sigma * (1 - rho) * E
    return dEdt

t = np.linspace(0, 250, 61)
y0 = E0

ret = odeint(deriv, y0, t, args=(N, sigma, rho))
E = ret.T

每次我根据这些权重运行代码时,我想将 sigma 的值设置为新的值,但这似乎不起作用。我知道我可以在这个范围内调用 random.uniform ,但是这些值是加权的这一事实很重要。我怎样才能做到这一点?

标签: pythonfunctionvariablesrandom

解决方案


假设您想生成一个数字,比如说从 1 到 10,您可以使用此代码

import random
n = random.randint(1,10)

第一个值 1 是最小值,第二个值 10 是最大值。


推荐阅读