我的代码是随机生成多维 我这一步 但是我希望通过一个班次为随机数组制作rotateLeft
这是我的数组
String [][] Sec ={
{"S1","--","S5","S2","S4"},
{"S3","S4","S5","S3","S7"},
{"S1","--","S7","--","--"},
{"S2","--","S5","S6","S3"},
{"--","s1","S2","S6","S4"}
};
这是随机函数
for (int i=0 ; i<Sec.length; i++ )
{
for (int j=0 ; j<Sec[i].length; j++ )
{
int i1 = (int) (Math.random()* Sec.length);
int j1 = (int) (Math.random()* Sec[i].length);
String temp = Sec[i][j];
Sec[i][j] = Sec[i1][j1];
Sec[i1][j1] =temp;
} //end for 1
}//end for2
这是随机数组的打印
for (int i=0 ; i<Sec.length; i++ )
{
System.out.print("p"+ r1++ +" " );
for (int j=0 ; j <Sec.length; j++ )
{
System.out.print(Sec[j][i] + " ");
}
现在我想要帮助我为这个随机数组制作rotateLeft并再次打印两次
输出结果为:
p1 S5 S6 S3 S1 S5
p2 -- -- S6 S5 --
p3 S4 S4 S7 S2 S4
p4 S2 -- -- -- S3
p5 S3 S7 s1 S2 S1
我希望这样的随机出现(让一个人改变一下ELEMNT的顺序)
p1 S1 S5 S6 S3 S1
p2 S5 -- -- S6 S5
p3 -- S4 S4 S7 S2
p4 S4 S2 -- -- --
p5 S3 S3 S7 s1 S2
答案 0 :(得分:0)
如果你像这样旋转那么在平面阵列而不是矩阵上操作会更有意义。如果你这样做,那么你可以把数组的最后一个元素 LastE 并将其附加到数组的前面,删除最后一个元素。
// PSEUDOCODE
flat_array = matrix.flatten
LastE = flat_array[len(flat_array)-1]
TailE = flat_array.subset(0,len(flat_array)-2)
rotated = TailE.prepend(LastE)
获得旋转的数组后,您可以将其转换回矩阵,或者只是对阵列进行操作,就像它是矩阵一样。