PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: Math.random()是[0, 1) 所以Math.random()*(rangeEnd - rangeStart) + rangeStart就是 rangeStart + [0, 1) * (rangeEnd - rangeStart) 所以最小值就是0的时候,是rangeStart,最大值不包含为1的时候,就是rangeEnd 所以是 [rangeStart, rangeEnd) Math.random的注释: * Returns a {@code double} value with a positive sign, greater * than or equal to {@code 0.0} and less than {@code 1.0}.
作者回复: 对的,取余数
作者回复: 👍
作者回复: 随机数范围的问题可以参考一下这篇视频课程下面的问题回复。
作者回复: 嗯呐,数字问题比较绕脑子
作者回复: 这里为了使用更多的操作符,确实搞得有点复杂。可以参考这节课里别的同学的提问和我的回答。有些别的写法更简单。
作者回复: ✅
作者回复: 🉑️
作者回复: 🉑️
作者回复: 大家普遍反映这个数学公式不直接。我的初衷是能让大家强化练习下,可能有点绕了。你可以看看这两节的回复,有很多更简单的算法。