algorithm - 在具有一组连续 1 的二维数组中查找所有可能的位排列

标签 algorithm math multidimensional-array permutation bitarray

下面我表示了二维位数组中的 2 个位排列(1 为红色)。左边的矩阵有一组连续的 1,但右边的矩阵有 2。

enter image description here enter image description here

我想遍历这样一个数组中二进制值的所有可能排列,该数组具有一组连续的 1。我知道对于像上面这样的 10×7 网格,当你包含非连续排列时,有 2(10 × 7) 排列,但我希望通过排除非连续排列我会能够在合理的 CPU 时间内全部完成。

说到合理性,我也对确定有多少排列是连续的算法感兴趣。

我的问题与这些相似但又不同:

感谢任何帮助。我有点卡住了。

最佳答案

所以,我发现 OEIS(整数序列在线百科全书)有一个来自 n = 0..7 的序列,表示“所有 1 连接的非零 n X n 二进制数组的数量” (A059525)。除了固定为 1 个单元格宽度(triangular numbers)或 2 的网格外,它们不提供任何公式。或 3细胞宽。有一个 sequence for 4 x n也是,但没有公式。

关于algorithm - 在具有一组连续 1 的二维数组中查找所有可能的位排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843264/

相关文章:

c - 给定某个整数 N,有多少个基数 b 使得 N 的基数 b 表示以 1 开头?

php - 如何在 php 中对多维关联数组的重复值进行分组?

algorithm - 基于分数对用户进行排名的数据结构的建议

algorithm - 贝塞尔函数的自然对数,溢出

javascript - 在 javascript 中创建可调整大小/可拖动/旋转的 View

python - 3D 阵列的 1D 绘图

c - 多维数组的超出范围声明

arrays - 在格上有效地计算邻居的功能

algorithm - 图问题松弛二分维简例的快速逼近

algorithm - 一个数字作为叶节点出现了多少次?