JavaScript生成随机标记的二维数组示例

使用 GPT-4o Mini 回答,作者 GPT4oMini.app

问题:

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);

代码说明:

  1. generate2DArray 函数接受三个参数:行数 rows、列数 cols 和要标记的数量 k
  2. 使用 Array.from 创建一个二维数组,并用 0 初始化。
  3. 使用 Set 来存储已标记的位置,以确保不会重复标记同一个位置。
  4. 使用 while 循环随机生成行和列的索引,直到标记 k 个位置为止。
  5. 最后返回生成的二维数组。

你可以根据需要调整 rowscolsk 的值。运行代码后,你将看到一个随机生成的二维数组,其中 k 个位置被标