在使用Math.random的时候,看到老师和各位大佬使用的方法不尽相同。本人是个数学白痴,总是在看到之后要思考一番为何如此?
今天痛定思痛,终于自己总结出来一个一套属于自己的想法。也不知道对不对
先设定一个变量 ran=Math.random();
假设我们要获得最小的随机数是1000-9999的四位随机数;
接下来考虑两步:
第一:最小值,因为ran的最小值是0,而四位数的最小值是1000,所以在获取结果时 必须是ran+1000;
第二:最大值,因为ran的最大值是0.99999999循环,而四位数的最大值是9999。
所以这个时候我们都假设向上取整,那么ran就=1 而我们要获取的随机数就变成了五位数=10000。
所以ran*多少+1000=10000呢?
答案是9000
然后因为ran本身是不可能=1的,所以 ran*9000+1000也不可能=10000。
这个时候我们只要向下取整这个公式就可以得到一个从1000到9999的随机数了。
最后总结出来的规律是:ran*(随机数最大值+1-随机数最小值)+随机数最小值;
假设性原则真的很好用啊。