js写了一个双色球的生成器,大家都知道,双色球的规则是
1. 红球6个,1-33中生成
2.篮球一个,1-16中生成
起先,做的一个代码:
思想
[ 红色球:从1-33个数字中随机取出一个数,然后和已取出的其他数据进行比较,如果存在此数,则从新选取;]
[ 蓝色球:从1-16中随机取出一个数位蓝色球]
如下:
后来发现这样虽然能取出不会重复的6个随机数做蓝色球,但实际上这样存在一个漏洞,因为,在取出几个数据之后,剩下数据的选取每个数据出现的概率是不一样的,而在上面的代码中,如果一个数字已被选取,下次再次选取时被选出的概率是一样的,所以将代码做了进一步修改:
修改后的代码如下:
<