温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python怎么实现商业街抽奖

发布时间:2021-12-17 17:14:54 来源:亿速云 阅读:186 作者:iii 栏目:大数据

这篇文章主要介绍“python怎么实现商业街抽奖”,在日常操作中,相信很多人在python怎么实现商业街抽奖问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么实现商业街抽奖”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  • 模拟实验与分析

对于出现的问题,首先通过python进行模拟实验,看看一百次抽奖中会出现多少次一等奖。

import pandas as pd 

from collections import Counter

choujiang = pd.Series(["未中奖","一等奖"])

cnt = Counter(choujiang.sample(n=100,replace=True,weights=([99,1])))

cnt

sample为pandas中函数,功能为随机抽样;

replace=True表示有放回的抽样;

weights表示取值权重;

Counter为collections中函数,功能为计算array中不同值的取值个数。

运行三次,结果分别为:

Counter({'一等奖': 1, '未中奖': 99})
 

Counter({'未中奖': 100})

 
Counter({'一等奖': 2, '未中奖': 98})

结论,中奖概率为1%,不代表抽100次必然出现1次一等奖。

上例为模拟了100次1%中奖率的电子抽奖,把这个模拟重复7次,即为1周内的抽奖情况模拟。用电脑模拟1000周的抽奖结果,就可以统计1000周里,出现5次一等奖的周数。

import numpy as np

#模拟1000周的抽奖情况

a = np.zeros(1000)

for i in range(1000):

    for j in range(7):

        a[i] = np.sum(choujiang.sample(n=100,replace=True,weights=([99,1]))=="一等奖")+a[i]

#画出直方图

import pylab

pylab.hist(a, bins=18, normed=0,edgecolor='black',facecolor='blue',alpha=0.75) 

pylab.show()  

np.transpose(Counter(a))

模拟1000周的抽奖情况,并计算抽中一等奖的次数,画出直方图。图中,横轴表示出现一等奖的次数,纵轴表示周数。

python怎么实现商业街抽奖

array(Counter({7.0: 151, 6.0: 140, 8.0: 138, 5.0: 130, 9.0: 96, 4.0: 91, 10.0: 81, 3.0: 53, 11.0: 37, 12.0: 26, 2.0: 23, 13.0: 13, 14.0: 7, 1.0: 7, 15.0: 3, 0.0: 3, 18.0: 1}), dtype=object)

上面结果为图中的频率分布情况,可以看出,一周内出现5次一等奖的一共有130周,130除以1000,为13%,即出现5次一等奖的周数占整体的13%。如果出现5次算有诈,那出现小于5次的也为有诈,则占总体的30%,概率过大,因此,不能单凭1周内只开出5次一等奖认为抽奖有诈

  • 几个小概念

概率:对于例子中对抽奖而言,中奖概率为1%,但是抽700次不一定出现7次大奖。

频率分布表:统计与某个数值一致的数据的个数,或者属于某数值范围内的数据的个数,然后将这些统计值制成一览表。

直方图:图形化的频率分布表。

数据的分布:如果将数据划分为若干个范围,那么数据在各个范围内的散布情况就成为分布。就大部分数据而言,平均值所在的范围频率最高,与平均值相差越大的范围频率越低。

到此,关于“python怎么实现商业街抽奖”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI