python-模拟掷骰子,两个筛子数据可视化
程序员文章站
2022-10-10 08:34:09
""" 作者:zxj 功能:模拟掷骰子,两个筛子数据可视化 版本:3.0 日期:19/3/24"""import randomimport matplotlib.pyplot as pltdef roll_num(): roll = random.randint(1, 6) return rolld... ......
"""
作者:zxj
功能:模拟掷骰子,两个筛子数据可视化
版本:3.0
日期:19/3/24
"""
import random
import matplotlib.pyplot as plt
def roll_num():
roll = random.randint(1, 6)
return roll
def main():
"""
主函数
"""
total_times=100
#初始化列表[0,0,0,0,0]
reslt_list=[0]*11
#记录筛子的结果
roll1_list=[]
roll2_list=[]
#初始化点数列表
roll_list=list(range(2,13))
#元组生成字典,zip元祖无法修改,生成字典可以修改
roll_dict=dict(zip(roll_list,reslt_list))
for i in range(total_times):
roll1=roll_num() #筛子1
roll2=roll_num() #筛子2
roll1_list.append(roll1)
roll2_list.append(roll2)
#筛子总和(2到12之间)
for j in range(2,13):
#如果筛子1加筛子2符合,则字典赋值
if roll1+roll2==j:
roll_dict[j]+=1
#遍历字典输出
for i ,result in roll_dict.items():
print('点数:{}的次数:{},频率:{}'.format(i,result,result/total_times))
#数据可视化
x=range(1,total_times+1) #x坐标(次数)
plt.scatter(x,roll1_list,c='red', alpha=0.5)
plt.scatter(x, roll2_list,c='green', alpha=0.5)
plt.show()
if __name__=='__main__':
main()
上一篇: 第一次试验报告