js给出行和列生成二维数组,随机在k个位置标记为1
你可以使用 JavaScript 来生成一个二维数组,并在随机的 k
个位置标记为 1
。以下是一个示例代码,展示了如何实现这一功能:
function generate2DArray(rows, cols, k) {
// 创建一个二维数组并初始化为0
const array = Array.from({ length: rows }, () => Array(cols).fill(0));
// 用于存储已标记的位置
const markedPositions = new Set();
// 随机标记k个位置为1
while (markedPositions.size < k) {
const randomRow = Math.floor(Math.random() * rows);
const randomCol = Math.floor(Math.random() * cols);
const position = `${randomRow},${randomCol}`;
// 确保不重复标记同一个位置
if (!markedPositions.has(position)) {
markedPositions.add(position);
array[randomRow][randomCol] = 1;
}
}
return array;
}
// 示例:生成一个3行4列的二维数组,并随机标记2个位置为1
const rows = 3;
const cols = 4;
const k = 2;
const resultArray = generate2DArray(rows, cols, k);
console.log(resultArray);
generate2DArray
函数接受三个参数:行数 rows
、列数 cols
和要标记的数量 k
。Array.from
创建一个二维数组,并用 0
初始化。Set
来存储已标记的位置,以确保不会重复标记同一个位置。while
循环随机生成行和列的索引,直到标记 k
个位置为止。你可以根据需要调整 rows
、cols
和 k
的值。运行代码后,你将看到一个随机生成的二维数组,其中 k
个位置被标