循环时将样本结果添加到列表中

时间:2014-05-24 23:47:45

标签: random-sample

尝试构建随机游走模拟,计算在给定步数内达到某个等级的次数。然后将金额传递到列表中。我的问题是我想连续运行多个样本,将各个结果添加到列表中。现在代码生成一个包含十个项目的列表,但它们都是相同的。

即:

"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)

1 个答案:

答案 0 :(得分:0)

我想你想在每个样本开头重置alist1,不是吗?也就是说,将它们的初始化移动到内部while循环开始之前。由于您没有重置a,因此内部循环永远不会在第一个样本完成后输入,因此y永远不会更改,因此您将继续从第一个样本中获取计数。 / p>

唯一一次追加到list1x达到100时,如果限制为1000步,则根本不可能发生这种情况。 (为什么你需要一个清单,因为你只关心计数,并且知道你每次都要追加100个?)