欢迎使用CSDN-markdown编辑器

来源:互联网 发布:linux分析日志 编辑:程序博客网 时间:2024/06/14 17:17

将一枚硬币抛掷三次
(1)求恰又一次出现正面的概率
(2)求至少一次出现正面的概率
话说以前遇到这些问题都是找什么样本空间之类的,我表示太抽象不能理解。。。今天用python暴力做题看看效果如何
解第一题:
让python给我扔硬币去。。。反正是计算机

import numpy.random as r    a = r.randint(2,size=3)    #a=array([1, 0, 0])

这里
第一个参数为2表示:a会产生一个介于[0,2)之间的整数),即0或者1随机一个,那么0表示正面,1表示反面
第二个参数size=3 : 表示扔一枚硬币三次

然后接下去就是让python去扔10000次硬币把哈哈哈,不开心你可以自己加

import numpy.random as r#这个l列表是用来存放结果集合的l = []for i in range(10000):    a = r.randint(2,size=3)    l.append(a)

这个时候python已经将10000次硬币的集合已经保存在集合l里面了,这个时候就是校验次数的时候
解1完整程序

# -*- coding: utf-8 -*-import numpy as npimport numpy.random as rl = []for i in range(1000000):    a = r.randint(2,size=3)    l.append(a)#校验 0是正面resultnum = 0for x in l:    #计算0出现的次数    x = x.tolist()#转成标准list    num = x.count(0)    if num == 1:        resultnum +=1print resultnum

解2完整程序

# -*- coding: utf-8 -*-import numpy as npimport numpy.random as rl = []for i in range(1000000):    a = r.randint(2,size=3)    l.append(a)#校验 0是正面resultnum = 0for x in l:    #计算0出现的次数    x = x.tolist()#转成标准list    num = x.count(0)    if num >= 1:#就这里不一样而已        resultnum +=1print resultnum
0 0