You need to enable JavaScript to run this app. 如何根据输入参数n生成仅由0和1组成的全组合二维数组
优惠活动
大模型
产品
解决方案
定价
更多

如何根据输入参数n生成仅由0和1组成的全组合二维数组

01二维数组生成方案

实现思路

你需要的数组本质是n位0/1值的全排列集合,核心实现逻辑如下:

  • 数组固定维度:行数为2^n,列数为n
  • 遍历0到2^n - 1区间的所有整数
  • 把每个整数转换为长度为n的二进制字符串,不足长度的高位补0
  • 将二进制字符串的每一位转为数字,作为数组的对应行元素

默认实现输出的是二进制数自然递增的全排列顺序,如果你需要严格匹配你给出的n=3示例的自定义顺序,调整生成后的数组排序规则即可。

代码示例

Python 实现

def generate_01_array(n):
    return [[int(bit) for bit in format(i, f'0{n}b')] for i in range(2 ** n)]

# 测试示例:n=2时输出 [[0,0], [0,1], [1,0], [1,1]]
print(generate_01_array(2))

JavaScript 实现

function generate01Array(n) {
    const rowCount = Math.pow(2, n);
    const result = [];
    for (let i = 0; i < rowCount; i++) {
        // 转二进制后高位补0到n位
        const binaryStr = i.toString(2).padStart(n, '0');
        result.push(binaryStr.split('').map(Number));
    }
    return result;
}

Java 实现

public class Array01Generator {
    public static int[][] generate01Array(int n) {
        int rowCount = 1 << n; // 等价于2^n
        int[][] result = new int[rowCount][n];
        for (int i = 0; i < rowCount; i++) {
            for (int j = 0; j < n; j++) {
                // 取对应位的二进制值
                result[i][j] = (i >> (n - 1 - j)) & 1;
            }
        }
        return result;
    }
}

内容的提问来源于stack exchange,提问作者Minh Duc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 03:36:02