生成随机数

帮人做了个抽奖的程序,之前没用过随机数,现在总结一下

Math.random()可以随机生成[0,1)之间的数,但是它生成的数会有很多位,不是只有一位数:

如果将[0,1)乘10,就可以得到[0,10)之间的数,比如 0.xxxx  1.xxxx  2.xxxx  此时用floor()截掉小数部分,就能得到0,1,2,....,9

现在需求是抽取编号1-8,所以可以先生成 1.xxxx   2.xxxx   一直到 8.xxxxx 的随机数 ,然后用floor(),就得到1,2,3,...,8

所以需要的区间是[1,9) , 而从[0,1)得到[1,9)只需要  *8+1

最终结果就是  Math.floor(Math.random()*8+1)

 (上图那个圆圈2,代表有两个7)

原文地址:https://www.cnblogs.com/jx-z/p/10279788.html