python(12)-统计随机事件出现的概率-掷骰子

     Python 统计随机事件及每种随机事件出现的频率。这是常用的统计手段,数据分析的必备技能。

      本文以掷骰子为例。骰子有6个面,每次的点数均在[1,6]之间,扔掷50次,统计每个面出现的次数,以及每个面的概率。比如1出现的次数为8,那么频率为8/50=0.16。


python编码时应用到两个函数
 

#1.产生随机数 范围[1,7]  random(1,6) [0,1.0)随机浮点数
                        uniform(a,b) 随机浮点数
                        randint(a,b)随机整数
                        choice()列表中随机返回一个值
                        shuffle()将列表中元素随机打乱
                        shuffle(,k)从指定列表中随机获取K个元素
#2.遍历列表时获取每个元素的索引号和元素值
   enumerate()
#返回[1,6]之间的随机值
def roll_dict():
    roll=random.randint(1,6)
    return roll
"""
m_random 表示的是 样本值
roll_dict() 表示的是样本空间
total_times 对应的是N

"""
def main():
    total_times=15
    #初始化结果列表,用以保存每个面出现的次数 也可写成 result_list = [0] * 6 默认 Index=0 代表存1的值
    result_list=[0,0,0,0,0,0]
    # 循环 total_times 每次取一个随机值
    for i in range(total_times):
        m_random=roll_dict()
        for j in range(1,7):
          if m_random==j:# 如果值,那么在对应的位置上计数+1
              result_list[j-1] +=1
    print(result_list)
    for i ,result in enumerate(result_list):#i表示的是默认序号
        print('点数{}的次数:{},频率:{}'.format(i + 1, result, result / total_times))
    """
    print 结果
    [2, 3, 2, 1, 3, 4]
    点数1的次数:2,频率:0.13333333333333333
    点数2的次数:3,频率:0.2
    点数3的次数:2,频率:0.13333333333333333
    点数4的次数:1,频率:0.06666666666666667
    点数5的次数:3,频率:0.2
    点数6的次数:4,频率:0.26666666666666666

    """



if __name__=='__main__':
   main()

 

你可能感兴趣的:(python)