小编And*_*sus的帖子

随机数位数的分布

我在尝试用JavaScript实现UUID生成器时遇到了这种奇怪的现象.

基本上,在JavaScript中,如果我Math.random()使用Node上的内置生成大量随机数4.2.2:

var records = {};
var l;
for (var i=0; i < 1e6; i += 1) {
  l = String(Math.random()).length;
  if (records[l]) {
    records[l] += 1;
  } else {
    records[l] = 1;
  }
}
console.log(records);
Run Code Online (Sandbox Code Playgroud)

数字位数有一个奇怪的模式:

{ '12': 1,
  '13': 11,
  '14': 65,
  '15': 663,
  '16': 6619,
  '17': 66378,
  '18': 611441,
  '19': 281175,
  '20': 30379,
  '21': 2939,
  '22': 282,
  '23': 44,
  '24': 3 }
Run Code Online (Sandbox Code Playgroud)

我认为这是V8的随机数生成器的怪癖,但类似的模式出现在Python 3.4.3:

12 : 2
13 : 5
14 …
Run Code Online (Sandbox Code Playgroud)

javascript python random

15
推荐指数
2
解决办法
377
查看次数

标签 统计

javascript ×1

python ×1

random ×1