Math.floor(Math.random()*255)会不会产生不均匀的概率?

Kyl*_*dha 1 javascript random math probability

正在考虑逻辑,似乎Math.floor(Math.random() * 255)会产生每个值生成的不均匀概率.

例如,许多值可以向下舍入到254,但只有当Math.random()生成正好为1时,输出才为255.概率的不均匀程度取决于Math.random()生成的小数位数.

我在这里的想法是不正确的,还是有更平衡的方式来生成一组随机整数?

dus*_*uff 12

Math.random()将始终生成严格小于1(即0 ? x < 1)的数字,因此Math.floor(Math.random() * 255)将生成0到254之间的随机数.

使用Math.floor(Math.random() * 256)产生0和255之间是一个数,结果将均匀分布.

  • +1; [这里是规范参考](http://www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.14):"*...大于或等于0但小于1 .. .*" (2认同)