尝试在每次执行循环时产生不同的随机数

2024-10-01 19:22:17 发布

您现在位置:Python中文网/ 问答频道 /正文

SRate = [5,5,5]
Bots = 120
NQueue = 3
TSim = 100
Exp = 2
DDistance = 1
Lambda = 40 # 120/3 = 40
import random

Elist=[]
AvgSRate = 5
def Initilization(AvgSRate,Lambda,Exp):
    return float((Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(np.random.seed(-28)) - 1)))

for a in range(1,361):
    Elist.append(Initilization)

我试图生成一组0到1之间的随机生成的数字,所以模拟的初始化是小数,但是每次循环执行时它都会输出相同的值,所以当我打印Elist时,我会得到所有相同值的列表。另外,列表中有<Function Initialization at "the number">,有人能帮我从打印的列表中去掉那部分,只留下数字吗。在


Tags: lambdaimport列表def数字randombotsexp
1条回答
网友
1楼 · 发布于 2024-10-01 19:22:17

问题是np.random.seed(-28)只是播种随机生成器[Documentation],它不返回任何随机数,对于获取随机数使用-np.random.rand()。在

示例-

return float((Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(np.random.rand()) - 1)))

如果您想为随机生成器设定种子,可以在调用调用Initilization函数的for循环之前调用它。在

之后的函数应该是-

^{pr2}$

另外,还有一个问题是,您没有将函数调用返回的值添加到列表-Elist.append(Initilization),而只是添加了函数引用。在

您需要将其更改为Elist.append(Initilization(<values for the parameter>)),以调用函数并将返回值追加到EList。在

相关问题 更多 >

    热门问题