想問怎麼用Python編一個 同時投12個骰子 計算每次投出至少出現兩個六的次數及概率的程序?

你好 想問一下怎麼用Python編一個 同時投12個骰子 計算每次投出12個骰子後至少出現兩個六的次數及概率的程序 每次至少有兩個這個地方不知道如何說明 我自己寫的感覺太麻煩而且好像也寫錯了…初學者… 求助 ~


謝邀,用random去模擬隨機,應該很簡單

  1. random使用前要給一個種子(一般用當前時間), 否則每次都是同一個隨即序列

  2. 生成12個隨機數用列表生成式
  3. 列表中找出特定元素(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代碼的意思如何理解?

TAG:Python | Python入門 | Python程序員 | python35 |