关于 JavaScript Math.random() 和基本逻辑的问题
- 论坛
- 关于 JavaScript Math.random() 和基本逻辑的问题
7 浏览
关于 JavaScript Math.random() 和基本逻辑的问题
我编写了一段简单的代码来比较随机数组的差异,发现了一些...我不太理解的东西。
- 我生成了两个填满随机数字的数组
- 计算随机数字之间的差异之和
- 打印出平均差异
我本以为结果会是接近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;
}