2015-09-08 55 views
0

我想重複投幣500次,並重復該實驗30次,並打印每次總運行的總尾數(1)。只是運行正面/反面很容易,但是當我試圖重複這一點時(第一次while循環),我得到每次運行的完全相同數量的尾巴,這應該是不可能的。Random.randint每次運行都會產生相同的答案 - 或者是我的代碼有問題?

雖然我是一個完整的新手,但我無法弄清楚我在這裏做錯了什麼......謝謝!

import random 
i=0 
count_1=0 
rand_count=0 
while rand_count<31: 
    while i < 501: 
     y=random.randint(0,1) 
     if y ==1: 
      count_1=count_1+1 
     i=i+1 
    rand_count=rand_count+1 
    print(count_1) 
+0

一次'I'501'是假一次,你怎麼能指望它IO又是真的嗎? – njzk2

回答

0

你只是重置count_1i一次,兩個環路以外。他們需要在外部循環內重置。這將有助於使用變量名和循環結構,使更容易代碼閱讀:

import random 

for trials in range(30): 

    count_1 = 0 
    for samples in range(500): 
     if 1 == random.randint(0, 1): 
      count_1 += 1 

    print(count_1) 
相關問題