以下是一个以JavaScript为例子的方法,可以随机将2N个元素的数组两两组合:
function randomPairs(arr) { let len = arr.length; let temp, index1, index2; // 随机交换数组元素的位置 for (let i = 0; i < len * 2; i++) { index1 = Math.floor(Math.random() * len); index2 = Math.floor(Math.random() * len); temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp; } // 将数组中的元素两两配对 let pairs = []; for (let i = 0; i < len; i += 2) { pairs.push([arr[i], arr[i + 1]]); } return pairs; } // 测试样例 const arr = [1, 2, 3, 4, 5, 6]; const pairs = randomPairs(arr); console.log(pairs);
这个方法首先使用随机交换数组元素的位置,打乱元素的顺序,确保后续组合的结果是随机的。然后将数组中的元素两两配对,将所有的配对结果组成一个新的数组返回。