Diviser et Conquérir de Multiplication de Matrice

Je vais avoir de la difficulté à se diviser et conquérir de multiplication de matrice de travail. Ce que je comprends, vous divisez les matrices de taille nxn dans les quadrants (chaque quadrant est n/2) et puis tu fais:

C11 = A11⋅ B11 + A12 ⋅ B21   
C12 = A11⋅ B12 + A12 ⋅ B22  
C21 = A21 ⋅ B11 + A22 ⋅ B21  
C22 = A21 ⋅ B12 + A22 ⋅ B22  

Ma sortie pour diviser et conquérir est vraiment grand et j'ai du mal à comprendre le problème que je ne suis pas très bon avec la récursivité.

exemple de sortie:

Original De La Matrice A:

4 0 4 3   
5 4 0 4   
4 0 4 0  
4 1 1 1 

X

Classique:

44 3 35 15  
56 20 24 35  
32 0 32 12  
29 5 21 17  

Diviser pour régner:

992 24 632 408  
1600 272 720 1232   
512 0 512 384  
460 17 405 497  

Quelqu'un pourrait-il me dire ce que je fais de mal pour diviser et conquérir? Tous mes matrices sont int[][] et classique est la méthode traditionnelle de 3 pour la boucle de multiplication de matrice

Pourquoi est-ce que vous voulez faire de la multiplication de matrice de cette façon? Si vous êtes intéressé par la performance brute il y a des bibliothèques numériques disponibles, j'en suis sûr, serait plus rapide que ce que vous pouvez écrire sur votre propre dans un laps de temps raisonnable. Si vous êtes intéressés à en apprendre sur le calcul numérique, je voudrais commencer avec boucle de carrelage (wikipedia a un article) au lieu d'une solution récursive.
ses devoirs à la maison.

OriginalL'auteur Raptrex | 2011-01-31