""" 作者: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()