如何找到多个2D阵列(矩阵)的所有组合,允许旋转

时间:2015-07-14 11:44:25

标签: arrays algorithm recursion dynamic-programming

我有3个2d阵列(矩阵),0和1 -

对于每个阵列,我将按顺时针方向旋转4次,反时钟方向旋转4次并翻转数组并重复上述操作,对于每次迭代,我将重复其他阵列的步骤,依此类推将数组合并到建立一个对称或类型的魔方,但每边有5个元素。这意味着如果我想添加2个数组,则意味着数组1中的1个必须与数组2中的0相匹配。 以下结构 -

enter image description here

以下是我的3个阵列

 0 0 1 0 1
 1 1 1 1 1
 0 1 1 1 0
 1 1 1 1 1
 0 1 0 1 1
-------------
 0 1 0 1 0
 0 1 1 1 0
 1 1 1 1 1
 0 1 1 1 0
 0 0 1 0 0
-------------
 1 0 1 0 0
 1 1 1 1 1
 0 1 1 1 0
 1 1 1 1 1
 0 1 0 1 0
-------------

这个问题是从我问How to solve 5 * 5 Cube in efficient easy way的问题演变而来的。

Consider my rotate methods are as follows -
rotateLeft()
rotateRight()
flipSide()

for (firstArray){
  element = single.rotateLeft();
  for(secondArray){
     element2 = single.rotateLeft();
    if(element.combine(element2){
     for(thirdArray){

     }
}
   }
}

目前我修复了3个阵列,但是我必须如何准确有效地解决这个问题。

0 个答案:

没有答案