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(<list>)列表中随机返回一个值
shuffle(<list>)将列表中元素随机打乱
shuffle(<list>,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()

浙公网安备 33010602011771号