生成二进制矩阵的所有可能排列

Generate all possible permutations of a binary matrix

我希望生成所有可能的 4x4 矩阵,其中每个元素可以是 0 或 1。

R 中是否有执行此操作的函数?

这是一个函数,可以为从 02^16-1 的索引创建这样的矩阵:

num2mat = function(num){ matrix(as.integer(intToBits(num)),4,4) }

这是它产生的结果:

> num2mat(0)
     [,1] [,2] [,3] [,4]
[1,]    0    0    0    0
[2,]    0    0    0    0
[3,]    0    0    0    0
[4,]    0    0    0    0

> num2mat(2^15+2^13+2^10+2^8+2^7+2^5+2^2+1)
     [,1] [,2] [,3] [,4]
[1,]    1    0    1    0
[2,]    0    1    0    1
[3,]    1    0    1    0
[4,]    0    1    0    1

> num2mat(2^16-1)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    1    1    1
[3,]    1    1    1    1
[4,]    1    1    1    1