尝试构建随机游走模拟,计算在给定步数内达到某个等级的次数。然后将金额传递到列表中。我的问题是我想连续运行多个样本,将各个结果添加到列表中。现在代码生成一个包含十个项目的列表,但它们都是相同的。
即:
"sample" = 10
"steps" = 1000
代码运行10步,1000步随机游走会话,每一步都是一个抽样,并生成一个列表,其中包含每次运行期间达到100级的10次唯一结果。
提前致谢。
import random
sample = input('Samples : ')
steps = input('Steps : ')
s = 0
a = 0
x = 0
list1 = []
list2 = []
while s < int(sample):
s = s + 1
while a < int(steps):
a = a + 1
r = random.randint(-1,1)
x = x + r
if x == 100:
list1.append(x)
y = len(list1)
list2.append(y)
print(list2)
答案 0 :(得分:0)
我想你想在每个样本开头重置a
和list1
,不是吗?也就是说,将它们的初始化移动到内部while
循环开始之前。由于您没有重置a
,因此内部循环永远不会在第一个样本完成后输入,因此y
永远不会更改,因此您将继续从第一个样本中获取计数。 / p>
唯一一次追加到list1
是x
达到100时,如果限制为1000步,则根本不可能发生这种情况。 (为什么你需要一个清单,因为你只关心计数,并且知道你每次都要追加100个?)