एक संख्याओं की सरणी 100% फेरबदल (shuffled) है यदि सरणी में कोई दो क्रमागत संख्याएँ एक साथ नहीं आतीं (हम यहाँ केवल आरोही क्रम का मामला मानते हैं)। और यह 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% हिस्सा फेरबदल किया गया है।