N * N矩阵,唯一方矩阵的计数...?

时间:2012-09-11 08:14:22

标签: java algorithm matrix data-structures

我给出了一个N * N矩阵,我需要找出那个更大矩阵中所有可能的唯一平方矩阵。如何实现快速和内存效率呢?

面临的问题: 实际上创建的矩阵实际上是N-> [2,50,000..3,00,000],每个元素实际上都标记为位[On / Off]或[0/1],我需要得到所有这些独特的方阵矩阵大于某个极限(比如20,即N> = 20),方阵的所有元素都应该是1,那么只有矩阵用于进一步处理, 所以基本上我需要找出这样的矩阵。

1 个答案:

答案 0 :(得分:1)

算法很简单:

  1. 计算 square 矩阵的数量
  2. 在此号码上使用循环
  3. 为每个矩阵计算i_minj_mini_maxj_max。这将只是一个循环遍历此矩阵,用于查找具有特定大小的矩阵。
  4. 将数据范围i_minj_mini_maxj_max复制到新矩阵。
  5. 只是一个提示: square 矩阵的数量取决于大的矩阵大小

    • 1x1 - > 1 *(1x1)
    • 2x2 - > 4 *(1x1)+ 1 *(2x2)
    • 3x3 - > 9 *(1x1)+ 4 *(2x2)+ 1 *(3x3)
    • 4x4 - > 16 *(1x1)+ 9 *(2x2)+ 4 *(3x3)+ 1 *(4x4 )

    我希望你能在这里找到正方形

    注意:这只包括连续的行/列组合。