python-模拟掷骰子,两个筛子数据可

发布时间:2019-05-21 21:38:02编辑:auto阅读(2285)

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

     

     

    
    

关键字