我想在一个循环中执行一个循环,但当我尝试这样做时,与单个循环相比,我发现一个错误的计算
我的代码有一个单数循环:
betresult = []
#main parameters
budget = 1500
numofbets = 100
win = 7.5
loss = -15
for i in range(numofbets):
#random list: 1 - win, 0 - loss
test = np.random.choice(np.arange(0, 2), p=[0.333, 0.667])
betresult.append(test)
#number of win and loss
winbets = np.sum(betresult)
lossbets = numofbets - winbets
#sum of win and loss
winsum = winbets * win
losssum = lossbets * loss
#final sum
result = budget - (winsum + losssum)
print(result)
我想把这段代码放到一个新的循环中,但是如果我用while
或for
做了一些明显的事情,我会发现一个错误的计算
对于单个循环,我通常得到one number between 1100 and 1800
计算错误的代码:
betresult = []
#main parameters
budget = 1500
numofbets = 100
win = 7.5
loss = -15
for i in range(10):
for j in range(numofbets):
#random list: 1 - win, 0 - loss
test = np.random.choice(np.arange(0, 2), p=[0.333, 0.667])
betresult.append(test)
#number of win and loss
winbets = np.sum(betresult)
lossbets = numofbets - winbets
#sum of win and loss
winsum = winbets * win
losssum = lossbets * loss
#final sum
result = budget - (winsum + losssum)
print(result)
对于双循环,我通常得到a number under 0
。循环范围越大,0以下的数字越大
错误执行(计算)的示例:
1470.0
7.5
-1590.0
-3007.5
-4447.5
-5910.0
-7440.0
-8835.0
-10410.0
-11985.0
我认为每次运行此循环时都需要清除betresult。 也许你需要一些额外的代码来计算,这取决于你想要什么
问题是betresult将10次迭代的所有值相加,这就是为什么会得到否定的答案
相关问题 更多 >
编程相关推荐