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">
,有人可以帮我从打印列表中删除该部分只有数字。
答案 0 :(得分:0)
问题是np.random.seed(-28)
只是播种随机生成器[Documentation],它不返回任何随机数,以获取随机数 - np.random.rand()
。
示例 -
return float((Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(np.random.rand()) - 1)))
如果要为随机生成器设定种子,可以在调用调用for
函数的Initilization
循环之前调用它。
此后的功能应该如下 -
def Initilization(AvgSRate,Lambda,Exp):
return float((Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(np.random.rand()) - 1)))
另外,还有一个问题是,您没有将函数调用返回的值添加到列表 - Elist.append(Initilization)
,只是添加了函数引用。
您需要将其更改为Elist.append(Initilization(<values for the parameter>))
以调用该函数并将返回的值附加到EList
。