Funkcja tworząca wszystkie możliwe macierze binarne 3x3

0

Witam.

Tworzę w Javie program ze sztucznej inteligencji, konkretniej sieć neuronową, którą następnie muszę wytrenować algorytmem wstecznej propagacji błędów. Udało mi się zaimplementować działającą sieć perceptronów i algorytm propagacji wstecznej jednak zaciąłem się na funkcji którą potrzebuję do tej sieci i nie mogę ruszyć dalej 😕. Muszę stworzyć metodę tworzącą wszystkie możliwe macierze binarne 3x3 ( wypełnione tylko 0 i 1 ) tzn 2 do potęgi 9 = 512 macierzy i każdą z nich przepuścić przez napisaną przeze mnie sieć zapisując wyniki jakie moja sieć zwróci dla każdej z nich. W macierzy jest 9 elementów i po prostu nie mogę wpaść na to jak utworzyć rekurencyjną funkcję tworzącą wszystkie możliwe zestawienia tych 9 elementów. Bardzo proszę o pomoc. Pozdrawiam

0

A czy musi być rekurencyjna? Potrzebujesz 512 macierzy po 9 elementów. Do tego wystarczy dwie pętle zagnieżdżone:

 for(int i=0; i<512; i++){
int[][] matrix=new int[3][3];
for(j=0; j<9;j++){
matrix[j/3][j%3]=f(i,j);
}
//tu trzeba zachować albo użyc macierzy
}

Natomiast f(i, j) ma wziąć liczbę i i zwrócić jej bit na pozycji j, czyli operatory &, <<, >>.

No a rekurencyjnie, to nie wiem.

0

http://goo.gl/6QsoE - tutaj masz rekurencyjnie i iteracyjnie :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1