簡體   English   中英

如何多次循環一個隨機函數?

[英]How to loop through a random function multiple times?

def a4():
    p = []
    for i in range(10):
        p.append(random.sample(x, 100))
    r = []
    for i in p:
        for j in i:
            r.append(j)
    return r

OUTPUT:

[0.5202486543583558, 0.5202486543583558, 0.5202486543583558, 0.5202486543583558, 0.5202486543583558]

a1000 = []
for i in range(5):
    a4()
    a1000.append(statistics.mean(a4()))
print(a1000)

我嘗試使用上面提到的for循環遍歷上面定義的函數,但該函數只運行一次,所有循環結果基本相同。 我希望每次循環運行該函數。 有人能告訴我為什么這個功能只運行一次?

正如在注釋中指出的那樣, a4定義中的p中的子列表具有完全相同的元素,完全相同的次數只有這些元素的順序發生變化。

因此, a4每個新結果都是如此。 這些是元素排列的相同列表。 但是元素的順序與mean的計算無關(置換元素的總和總是相同的)。 因此,你總是得到與結果相同的意思。

但是,您可能想要實現的是某種引導機制 在這種情況下,您會想要替換樣品。 而這反過來每次都會產生不同的結果。 如果這是你想要的,那么更換

p.append(random.sample(x, 100))

p.append(random.choices(x, k=100))

另外我會考慮使用numpy來做這些事情。 閱讀關於numpy數組方法的連接,展平。 和numpy.random.sample和numpy.random.choice。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM