2015-11-13 2 views
0

Я в процессе создания функции кроссовера в генетическом алгоритме в Java. В 2 «родители» являются 2D arrays:Кроссовер на двумерном массиве?

Class[][] p1 = new Class[5][7]; 
     p1 = parent1; 
Class[][] p2 = new Class[5][7]; 
     p2 = parent2;//parents hold an filled array of Classes of the same dimensions as p1 and p2. 

и метод кроссовера возвращает один «ребенок», который должен провести первые 2 столбца родителя 1 и последний 3 из родителей 2
Как я могу выбрать столбцы от 2D array и использовать их для создания дочернего массива?

ответ

0

Многомерный массив в Java представляет собой одномерный массив, значения которого являются экземплярами массива. Таким образом, ...

Class[][] p1 = new Class[5][7]; 
System.out.println(p1.length); //5 
System.out.println(p1[0].length); //7 
System.out.println(p1[1].length); //7 
// ... 
System.out.println(p1[4].length); //7 

Если я правильно понимаю вашу цель, то все, что вам нужно сделать, это создать массив «Результаты» (одномерный) и установить соответствующие значения в соответствующих индексах. Вот начало ...

Class[] results = new Class[5]; //2 + 3 == 5 total 
results[0] = p1[0]; 
//... 
Смежные вопросы