你好,大家好,我以及很久很久没有在优快云上写文章了,上一篇文章还是在2018年一月份写的,现在以及过去了大半年,我也从一个做PHP开发实习生变成了一个目前做的Python的开发的搬砖工,希望大佬们多多指正。
废话不多说,我们开始正文。
目前公司的项目是一个做游戏盒子的微信小程序,里面涉及到一个大转盘抽奖的系统,UI给的设计图如下:
要求是可以设置各个奖品,以及控制每个奖品获取的概率。
这该怎么办呢,随机数是肯定要用到的,但是该如何做呢
我在网上搜索的大转盘算法,找到了这篇文章:链接
这位大佬给出了两种方式解决问题:
第一种:根据设置的概率,把奖品的数目相应的翻倍,比方说10%的概率,所有的奖品总量为长度为100的数组,则把该奖品×10,存放于数组中
A [0] = iphone
A [1] = iphone
A [2] = iphone
....
A [10] = iphone
A [11] = 100元购物卷
A [12] = 100元购物卷
这种方法的缺陷很明显,如果需要设置一个万分之一的概率,那就得将数组长度设置为10000,十万分之一的概率那就得将数组设置为10W,这会造成内存极大的消耗,所以不推荐使用。