关于 JavaScript Math.random() 和基本逻辑的问题

7 浏览
0 Comments

关于 JavaScript Math.random() 和基本逻辑的问题

我编写了一段简单的代码来比较随机数组的差异,发现了一些...我不太理解的东西。

  1. 我生成了两个填满随机数字的数组
  2. 计算随机数字之间的差异之和
  3. 打印出平均差异

我本以为结果会是接近0.5的随机数字,但实际上是0.3333。

为什么随机数字数组会接近0.3而不是0.5呢?

const result = document.getElementById('result');

const generateRandomNrArray = (nrNumbers) => {

let i;

let result = [];

for (i = 0; i < nrNumbers; i++) {

result.push(Math.random());

}

return result;

}

const getArrayDiff = (arr1, arr2) => {

var diff = 0;

arr1.forEach(function (v1, index) {

diff += Math.abs(v1 - arr2[index]);

});

return diff;

}

const run = (nr) => {

const arr1 = generateRandomNrArray(nr);

const arr2 = generateRandomNrArray(nr);

const totalDiff = getArrayDiff(arr1, arr2);

result.innerHTML = "平均差异: " + (totalDiff / nr);

}

button {

font-size: 2em;

}

0