中奖概率数据库用什么数据类型

中奖概率数据库用什么数据类型,第1张

首先我们来说说比较常见的随机概率:

这就好像我们说的,我有一百个乒乓,其中一个是红色。然后把这些放到一个盒子里面,然后你在进行摸。当你摸完一次以后,在把你摸到的乒乓放回到盒子里面,在进行摸。这些,你每次摸中红色球的概率都是1/100。于是这样就产生的一个问题,我们对奖品会变得不可控制。如果一个运气好,很有可能机会造成奖品还不够发送。如果运气不好,这些奖品永远都可能留在那里。

于是根据这种问题,又有一种方法,每一次我们摸中的球,不放回回去了。于是概率也就变成:1/100,1/99,1/98……。这样也就控制了中奖的人数。但是这样又会出现一个问题:作为开奖人我对抽奖时间是不可控的。很多商家希望的是我在每个时间段能发送相应的奖品回去,这样更能提高抽奖的热度。如果一个奖品很快我就发送出去出去了,后面来的人会很失望。

于是根据这个问题,又出现了一种方法。如果我们把奖品放到抽奖的数量上面去,那不就可以控制抽奖的时间和中奖的人数了。如果100次抽奖中,我想每隔10次就有一个中奖,于是,我就随机吧中奖的机会放到5,16,21…..这样的抽奖次数去。这样我就能控制抽奖人的那种心情。能把更多的人留在我这里进行抽奖。

提供一个思路给你,你可以把抽奖号添加到一组数列里,一般使用数据库存储,并且自动编排号码。

使用随机数random函数随机1-你的号码数量,获得这个号码的排位数,即为获奖号码。

没做过这种,想了一下比较简单的方法,看一下你上面奖品设置是1-5,200人抽一定中,那就在数据库中提交时创建一个200长度的字符串,一个字符代表一个奖品,比如iphone5是两个1,键盘是8个2,这样这个字符串就形如1122222222333333共200个,然后随机打乱它们的顺序(比如循环200次,从第一个字符开始,随机这个位置与另一个随机位置的数据,当然这仅是一种方法,具体怎么处理随你,总之最后得到一个乱序的序列

抽奖时,从1-序列总长中随机取值(当然第一次就为200),比如为150,取出上面那个序列第150个字符的值,对应的数字即为奖品,将这150处的字符删除一个(此时序列总长为199)。当然这里你可以先做判断,每抽到一次奖就将奖品序号count处对应的数据减1,比如150取到的是2,先查一下上面id为2的那个coun是不是大于0,如果大于,那奖品就是键盘,除了前面的删除字符,上面的count处的8也要减去1),重复这个过程,第二次抽奖随机数为1-199,这样200次抽奖就都能抽到不同的奖品,抽200之后最终上面那个序列为空


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9939606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存