2015-12-02 3 views
-3

Мой код для создания многомерной случайной я сделать этот шаг , но я хочу сделать rotateLeft для случайного массива на одну сменуRotateLeft для многомерного массива строк в Java

Это мой массив

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

Как вы можете ожидать какой-либо определенный выход при применении случайной функции? Определение случайного означает, что вы не можете предсказать результат. --- Как случайная замена значений каким-либо образом «вращается»? Это называется * shuffle *, если угодно. – Andreas

+0

Что такое 'r1'? Где это определено? – Andreas

+0

@ Andreas. Я просто предположил, что r1 == i. – yyttr3

ответ

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) 

После того, как вы получите ваш повернутый массив, который вы можете превратить это обратно в матрицу или просто работать на массиве, как если бы это была матрица.

+0

@answered plz вы можете объяснить, где я использую это в своем коде :( –

+0

@Njood Нет, потому что я недостаточно знаю о вашем коде.В любом случае, если вы знаете свой материал, вы сможете реализовать эту концепцию. Google и узнайте, как это сделать. – yyttr3

Смежные вопросы