Arrays 翻转二维阵列

Arrays 翻转二维阵列,arrays,Arrays,我正在尝试将一个2D数组转换成一个表单,这样我就可以根据需要使用它了。我就是不能正确地修改它 假设我有一个2D数组: 0 1 0 1 0 0 0 1 1 1 0 0 0 3 0 0 0 0 0 1 0 0 0 0 0 我怎样才能将它翻转到对称位置,所以现在位置0,1是1,因此位置1,0是1 这就是seance吗 我需要这样做,这样我才能算出Euler tour您可以通过翻转的方式访问它 x = 3; y = 5; // Ask for x,y element $normal = $

我正在尝试将一个2D数组转换成一个表单,这样我就可以根据需要使用它了。我就是不能正确地修改它

假设我有一个2D数组:

0 1 0 1 0 
0 0 1 1 1 
0 0 0 3 0 
0 0 0 0 1 
0 0 0 0 0 
我怎样才能将它翻转到对称位置,所以现在位置0,1是1,因此位置1,0是1

这就是seance吗


我需要这样做,这样我才能算出Euler tour

您可以通过翻转的方式访问它

x = 3;
y = 5;

// Ask for x,y element
$normal = $myarray[$x][$y];         

// Ask for x,y in the flipped array by asking for y,x
$flipped_access = $myarray[$y][$x]; 
类似这样的东西(伪代码)


尽管这取决于您的环境,但可能有一些特殊的方法可以做到这一点。

这和转置方阵不一样吗<代码>

(for i=0; i < order; i++) {
  for(j =i; j < order; j++) {
   temp = arr[i][j];
   arr[i][j] = arr[j][i];
   arr[j][i] = temp;
 }
}
(对于i=0;i}

这太难了,我们无法提供帮助,至少在您亲自尝试并向我们展示您迄今为止所做的工作之前。您需要元语言中的通用算法,还是这是一个特定于语言的问题?如果是后者,哪种语言?我需要一个完全对称的矩阵,这就是这里的问题,否则我会使用这个解决方案

(for i=0; i < order; i++) {
  for(j =i; j < order; j++) {
   temp = arr[i][j];
   arr[i][j] = arr[j][i];
   arr[j][i] = temp;
 }
}