昨天开年会的时候看到一个段子说唯品会年会抽奖,结果大奖都被写抽奖程序的部门得了,CTO现场review代码。 简单想了一下抽奖程序的实现,花了十几分钟写了一下,主要用到的知识有数组添加删除,以及ES5 数组新增的indexOf,filter方法, 为了刷新页面后仍能保存已中奖记录,用了 ...
昨天开年会的时候看到一个段子说唯品会年会抽奖,结果大奖都被写抽奖程序的部门得了,CTO现场review代码。 简单想了一下抽奖程序的实现,花了十几分钟写了一下,主要用到的知识有数组添加删除,以及ES5 数组新增的indexOf,filter方法, 为了刷新页面后仍能保存已中奖记录,用了 ...
下面提供两种抽奖中奖率计算的算法 ,第一种是自己设计出来的 ,第二种是比较经典的。 最重要的一点 概率学: 基数越大越能体现出中奖率。 比如扔10次硬币 5次正面和5次反面的概率比较小, 但是扔100次 1000次 10000次时 得到50%正50%反的结果越来越明显 方法 ...
...
当我们开发抽奖程序时,经常需要配置不同奖品的概率。 如:冰箱:30%,电脑:10%,洗衣机:50%。 可用以下函数实现: 这个函数首先将输入数组,如[30,10,50]进行相加,求出总和作为概率分母。 再取0到总和之间的随机数,再确定这个数是在哪个区间上。 从数组的前面 ...
不同概率的抽奖原理就是把0到*(比重总数)的区间分块 分块的依据是物品占整个的比重,再根据随机数种子来产生1-* 中的某个数 判断这个数是落在哪个区间上,区间对应的就是抽到的那个物品。 随机数理论上是概率均等的,那么相应的区间所含数的多少就体现了抽奖物品概率的不同 ...
博客园参考文章 github参考源码 ...
前段时间项目中开了一个转盘抽奖的活动,转盘抽奖是一个比较简单的算法,下面介绍两种实现 第一种实现 ### 第二种实现 ```python import random def random_pick(): lucky_spin_rewards = [ {"integral ...