最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

python知識(shí)分解析擲骰子游戲

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:12:57
文檔

python知識(shí)分解析擲骰子游戲

python知識(shí)分解析擲骰子游戲:本篇文章給大家分享的內(nèi)容是關(guān)于python知識(shí)分解析擲骰子游戲 ,有著一定的參考價(jià)值,有需要的朋友可以參考一下。最近學(xué)習(xí)了點(diǎn)統(tǒng)計(jì)學(xué)及python知識(shí),試著分析下擲骰子游戲。骰子按標(biāo)準(zhǔn)6面,分析一次投1顆、2顆、3顆、4顆,投擲10、100、1000、10000次
推薦度:
導(dǎo)讀python知識(shí)分解析擲骰子游戲:本篇文章給大家分享的內(nèi)容是關(guān)于python知識(shí)分解析擲骰子游戲 ,有著一定的參考價(jià)值,有需要的朋友可以參考一下。最近學(xué)習(xí)了點(diǎn)統(tǒng)計(jì)學(xué)及python知識(shí),試著分析下擲骰子游戲。骰子按標(biāo)準(zhǔn)6面,分析一次投1顆、2顆、3顆、4顆,投擲10、100、1000、10000次

1、猜次數(shù)

1-6中每個(gè)數(shù)字出現(xiàn)的次數(shù)
# 導(dǎo)入包
import pygal
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus']=False # 用來(lái)正常顯示負(fù)號(hào)
from random import randint
# 利用隨機(jī)數(shù)據(jù)模擬擲骰子
# 每次顯示1-6中的一個(gè)數(shù)

num_sides = 6 # 骰子的6個(gè)面
def getData(N, times):
 """
 定義函數(shù),獲取投擲數(shù)據(jù)
 N: 表示一次用幾個(gè)骰子投
 times:表示總共投幾次
 """ 
 results = [] 
 for n in range(1,N+1): 
 for roll_num in range(times):
 result = randint(1,num_sides)
 results.append(result) 
 return results
# 打印投擲結(jié)果
print(getData(1,10)) # 1個(gè)骰子擲10次
print(getData(2,5)) # 2個(gè)骰子擲5次
[2, 2, 2, 2, 1, 6, 4, 4, 5, 5]
[4, 3, 5, 6, 2, 2, 3, 6, 4, 4]
# 分析結(jié)果# 統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的次數(shù)并顯示圖片
 # N: 表示一次用幾個(gè)骰子投
 # data 表示投擲數(shù)據(jù)def showResult(N, times):
 frequencies = [] for value in range(1, num_sides+1):
 frequency = getData(N, times).count(value)
 frequencies.append(frequency) # 數(shù)據(jù)可視化
 # 本次利用 pygal 生成SVG格式矢量圖
 hist = pygal.Bar()
 hist.title = str(N)+"個(gè)骰子擲"+ str(times) +"次的結(jié)果"
 hist.x_labels = ['1','2','3','4','5','6']
 hist.x_title = "點(diǎn)數(shù)"
 hist.y_title = "出現(xiàn)次數(shù)"

 hist.add(str(N)+'骰子', frequencies)
 hist.render_to_file('1-'+str(N)+str(times)+'.svg') # 儲(chǔ)存為矢量圖
# 一個(gè)骰子擲10,100, 1000, 10000次結(jié)果分析showResult(1,10)
showResult(1,100)
showResult(1,1000)
showResult(1,10000)

這里寫圖片描述

# 2個(gè)骰子擲10,100, 1000, 10000次結(jié)果分析showResult(2,10)
showResult(2,100)
showResult(2,1000)
showResult(2,10000)

這里寫圖片描述

3個(gè)骰子、4個(gè)骰子就不再截圖了。

我們發(fā)現(xiàn)在投擲的次數(shù)越多,每個(gè)數(shù)出現(xiàn)的概率越接近,最后趨向于相同。

2、猜大小

每次投擲點(diǎn)數(shù)和
# 每次投擲點(diǎn)數(shù)和def getData2(N, times):
 """
 定義函數(shù),獲取投擲數(shù)據(jù)
 N: 表示一次用幾個(gè)骰子投
 times:表示總共投幾次
 """ 
 results = [] for roll_num in range(times):
 result = 0
 for n in range(1,N+1):
 result += randint(1,num_sides)
 results.append(result) 
 return results
# 打印投擲結(jié)果print(getData2(1,10)) # 1個(gè)骰子擲10次print(getData2(2,5)) # 2個(gè)骰子擲5次
[4, 3, 6, 2, 5, 4, 5, 3, 6, 2]
[6, 10, 5, 8, 7]
# 分析結(jié)果# 統(tǒng)計(jì)數(shù)字和出現(xiàn)的次數(shù)并顯示圖片
 # N: 表示一次用幾個(gè)骰子投
 # data 表示投擲數(shù)據(jù)def showResult2(N, times):
 frequencies = [] for value in range(N, N*num_sides+1):
 frequency = getData2(N, times).count(value)
 frequencies.append(frequency) # 數(shù)據(jù)可視化
 # 本次利用 matplotlib 生成圖片
 x_num = N*num_sides+1-N
 idx = np.arange(x_num)
 width = 0.5
 sn = str(N)
 sm = str(times)
 x_labels = [str(n) for n in range(N, N*num_sides+1)] # X軸刻度

 plt.bar(idx, frequencies, width, color='red', label=sn+'個(gè)骰子')
 plt.xlabel('點(diǎn)數(shù)和')
 plt.ylabel('出現(xiàn)次數(shù)')
 plt.title(sn+'個(gè)骰子投擲'+ sm +'次的結(jié)果')
 plt.xticks(idx, x_labels)
 plt.legend() # 顯示圖例
 plt.show()

1顆骰子猜大小沒(méi)多大意義,我們直接來(lái)分析兩骰子的情況。

# 2個(gè)骰子擲10,100, 1000, 10000次結(jié)果分析showResult2(2,10)
showResult2(2,100)
showResult2(2,1000)
showResult2(2,10000)

這里寫圖片描述

# 3個(gè)骰子擲10,100, 1000, 10000次結(jié)果分析showResult2(3,10)
showResult2(3,100)
showResult2(3,1000)
showResult2(3,10000)

這里寫圖片描述

# 4個(gè)骰子擲10,100, 1000, 10000次結(jié)果分析showResult2(4,10)
showResult2(4,100)
showResult2(4,1000)
showResult2(4,10000)

這里寫圖片描述

從上面幾圖中我們可以看到,當(dāng)投擲次數(shù)足夠多時(shí),出現(xiàn)大/小點(diǎn)數(shù)出現(xiàn)的概率基本相同,點(diǎn)數(shù)大小呈現(xiàn)正態(tài)分布的特點(diǎn)。

相關(guān)推薦:

練手小程序:craps擲骰子游戲

擲骰子問(wèn)題

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

python知識(shí)分解析擲骰子游戲

python知識(shí)分解析擲骰子游戲:本篇文章給大家分享的內(nèi)容是關(guān)于python知識(shí)分解析擲骰子游戲 ,有著一定的參考價(jià)值,有需要的朋友可以參考一下。最近學(xué)習(xí)了點(diǎn)統(tǒng)計(jì)學(xué)及python知識(shí),試著分析下擲骰子游戲。骰子按標(biāo)準(zhǔn)6面,分析一次投1顆、2顆、3顆、4顆,投擲10、100、1000、10000次
推薦度:
標(biāo)簽: 游戲 小游戲 擲骰子
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top