tgo*_*gos 12 javascript random floating-point integer range
给定一个Math.random()函数,它返回一个介于[0,1)和min max值之间的数字来指定范围,我们如何为以下情况生成数字:
我们想要整数的情况:
A: (min,max) ?B: [min,max) return Math.floor(Math.random() * (max - min)) + min;C: (min,max] ?D: [min,max] return Math.floor(Math.random() * (max - min + 1)) + min;我们想浮动的情况:
A: (min,max) ?B: [min,max) return Math.random() * (max - min) + min;C: (min,max] ?D: [min,max] ?整数:
return Math.floor(Math.random() * (max - min - 1)) + min + 1;return Math.floor(Math.random() * (max - min)) + min + 1;对于浮点数,您需要知道您拥有哪种浮点运算。除非您使用特殊的库,否则浮动中的相等通常不会发生,因此拥有封闭范围没有任何实际意义。因此,这四个之间应该没有区别,您可以选择:
return Math.random() * (max-min) + min;
为了使问题有意义,您需要定义平等的最小可接受范围(例如r=0.00000000000000001)。之后,您可以将开域方程(即(min, max))转换为[min+r, max-r]。