检查数组的随机排列强度 - JavaScript
javascriptweb developmentfront end technologyobject oriented programming更新于 2025/12/8 13:32:17
如果数组中没有两个连续的数字同时出现,则数字数组的随机排列程度为 100%(我们这里只考虑升序的情况)。如果两个数字是连续的,则随机排列程度为 0%。
对于长度为 n 的数组,将有 n-1 对元素(不扭曲其顺序)。
我们需要编写一个 JavaScript 函数,该函数接受一个数字数组并返回一个介于 [0, 100] 之间的数字,表示数组中的随机排列强度
示例
以下是代码 −
const arr = [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7];
// 此函数计算升序排序的偏差
const shuffleIntensity = arr => {
let inCorrectPairs = 0;
if(arr.length <= 1){
return 0;
};
for(let i = 0; i < arr.length - 1; i++){
if(arr[i] - arr[i+1] <= 0){
continue;
};
inCorrectPairs++;
};
return (inCorrectPairs / (arr.length -1)) * 100;
};
console.log(shuffleIntensity(arr));
输出
以下是控制台中的输出 −
40
这意味着这个数组的 40% 部分被打乱了。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

