想問怎麼用Python編一個 同時投12個骰子 計算每次投出至少出現兩個六的次數及概率的程序?
你好 想問一下怎麼用Python編一個 同時投12個骰子 計算每次投出12個骰子後至少出現兩個六的次數及概率的程序 每次至少有兩個這個地方不知道如何說明 我自己寫的感覺太麻煩而且好像也寫錯了…初學者… 求助 ~
謝邀,用random去模擬隨機,應該很簡單
- random使用前要給一個種子(一般用當前時間), 否則每次都是同一個隨即序列
- 生成12個隨機數用列表生成式
- 列表中找出特定元素(6)的個數可以用 list的count方法
以下是示例代碼
# -*- coding: utf-8 -*-
import random
from datetime import datetime
random.seed(datetime.now())
x, y = 0,0
while True:
if [random.randint(1, 6) for i in range(12)].count(6) &>= 2:
x += 1
y += 1
print("模擬%d次,概率為%d/%d = %f" % (y, x, y, float(x)/y))
你把它當成概率問題來算簡單些,非要模擬的話,,好像挺好玩的樣子,晚點更
#-*-coding=utf-8 -*-
import random
#roll--投12次骰子,計算6出現2次以上的概率
def roll():
i=[random.randint(1,6) for i in range(12)].count(6)
if i&>=2:
return 1
else:
return 0
#main--進行遊戲
def main(game_num):
P=0.0
for i in xrange(game_num):
p=roll()
P+=p
print u"進行了%d次遊戲,投12次骰子,6每次出現2次以上的概率為:%f"%(game_num,P/game_num)
簡單寫了一個腳本,用for循環,效率較低。
(#‵′)靠!!!為什麼不能上傳照片!!!for循環一共12次加一個count計數每次等於6就加1
count大於等於2就break
import numpy as np
n = 1000000
a = ((np.random.randint(1, 7, [n, 12]) == 6).sum(1) &> 1).sum()
print("次數:", n, "
概率:", a / n)
同時投12個骰子 計算至少有兩次 出現六的次數及概率是一個數學問題, 不需要寫程序, 紙和筆就可以了
推薦閱讀:
※剛安裝了pycharm, 寫了一句print "nice!" 都報錯是怎麼回事?
※寫python代碼,你會遵守PEP8代碼規範么?
※你是如何深入理解 Python 的 list comprehension 就是 generator 這一點的?
※python楊輝三角代碼過程看不懂?
※這段python代碼的意思如何理解?