この記事で共有された内容は、Python の知識分析とサイコロ投げゲームに関するもので、必要な友人は参考にすることができます。最近統計とPythonの知識を勉強してサイコロゲームの分析をしてみました。サイコロは標準の6面を基本とし、1、2、3、4個ずつサイコロを投げ、10回、100回、1,000回、10,000回投げた結果を分析します。
ツールを使用する
Jupyter Notebook 分析ツール
Matplotlib、pygal 視覚化パッケージ
1-6中每个数字出现的次数
# 导入包 import pygal import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号 from random import randint
# 利用随机数据模拟掷骰子 # 每次显示1-6中的一个数 num_sides = 6 # 骰子的6个面 def getData(N, times): """ 定义函数,获取投掷数据 N: 表示一次用几个骰子投 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
# 打印投掷结果 print(getData(1,10)) # 1个骰子掷10次 print(getData(2,5)) # 2个骰子掷5次
[2, 2, 2, 2, 1, 6, 4, 4, 5, 5] [4, 3, 5, 6, 2, 2, 3, 6, 4, 4]
3 つのサイコロと 4 つのサイコロのスクリーンショットはもうありません。
投げる回数が増えるほど、各数字が現れる確率は近づき、最終的には同じになる傾向があることがわかりました。
# 分析结果# 统计每个数字出现的次数并显示图片 # N: 表示一次用几个骰子投 # data 表示投掷数据def showResult(N, times): frequencies = [] for value in range(1, num_sides+1): frequency = getData(N, times).count(value) frequencies.append(frequency) # 数据可视化 # 本次利用 pygal 生成SVG格式矢量图 hist = pygal.Bar() hist.title = str(N)+"个骰子掷"+ str(times) +"次的结果" hist.x_labels = ['1','2','3','4','5','6'] hist.x_title = "点数" hist.y_title = "出现次数" hist.add(str(N)+'骰子', frequencies) hist.render_to_file('1-'+str(N)+str(times)+'.svg') # 储存为矢量图
# 一个骰子掷10,100, 1000, 10000次结果分析showResult(1,10) showResult(1,100) showResult(1,1000) showResult(1,10000)
# 2个骰子掷10,100, 1000, 10000次结果分析showResult(2,10) showResult(2,100) showResult(2,1000) showResult(2,10000)
関連おすすめ:
以上がPython知識分析サイコロゲームの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。