#マークに従いながら、2個のサイコロを100回振って、各合計の(0〜12)回数をカウントして、グラフにしようとしています。
どのようなコードが適切か教えていただけると助かります!
- 問題点
現在このコードは動きます、しかしながら結果が出力されると0〜99までの数字が順番にでるため、全くランダムではありません。「最後にroll_diceとupdate_listの両方を呼び出すforループを作成して、サイコロを振り、その振りの結果に基づいてリストを更新しないといけないです。 ループはサイコロを振る回数を繰り返す必要があります。」このような説明があるのですが、どうやるのかがまったくわかりません。
import random roll_list = [] #holds the number of times each number was rolled # has 13 spots (0 - 12). roll_list[1] is how many times # a 1 was rolled. num_rolls = 100 # number of times to roll the dice # initialize the roll_list[] so it has the correct number of spots def init_list(): for x in range(0,13): roll_list.append(x) # use a for loop and list.append( x ) to fill the roll_list with 13 zeros # returns the sum of the two dice that were rolled def roll_dice(): dice1 = random.randint(1, 6) dice2 = random.randint(1, 6) twodice = dice1 + dice2 return roll_dice() # roll 2 standard die and return the sum (should be from 2 to 12) # random.randint() will be helpful here # change this line so it returns the correct sum def update_list(): if twodice == 0: roll_list[0] += 1 elif twodice == 1: roll_list[1] += 1 elif twodice == 2: roll_list[2] += 1 elif twodice == 3: roll_list[3] += 1 elif twodice == 4: roll_list[4] += 1 elif twodice == 5: roll_list[5] += 1 elif twodice == 6: roll_list[6] += 1 elif twodice == 7: roll_list[7] += 1 elif twodice == 8: roll_list[8] += 1 elif twodice == 9: roll_list[9] += 1 elif twodice == 10: roll_list[10] += 1 elif twodice == 11: roll_list[11] += 1 elif twodice == 12: roll_list[12] += 1 return update_list() # add 1 to the list location associated with the total roll value # example: if the total of the roll is 7, then add 1 to roll_list[7] def print_histogram(): maxBar = str(13) for z in roll_list: p = str(z) if p <= maxBar: p += '*' return print_histogram() # for 100% create and print a histogram of the results of all # of the dice rolls for roll_dice in range(num_rolls): print(roll_dice) for update_list in range(num_rolls): print(update_list)
サンプルのアウトプットです。
Sample Output: [0, 0, 4, 2, 7, 12, 12, 22, 12, 13, 9, 3, 4] 0: 1: 2: **** 3: ** 4: ******* 5: ************ 6: ************ 7: ********************** 8: ************ 9: ************* 10: ********* 11: *** 12: ****
回答3件
あなたの回答
tips
プレビュー