|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
12-10-2006, 16.36.05 | #1 |
Newbie
Registrato: 23-08-2006
Messaggi: 22
|
Moltiplicazione di matrici
mi sto perdendo all'interno dei cicli nidificati per risolvere la moltiplicazione di queste 2 matrici. Non riesco a inserire l'immagine!!! comunque la prima matrice va da 1 a 15 la seconda da 1 a 20 il risultato 175 190 205 220 400 440 480 520 625 690 755 820 Codice: /* Moltiplicazione tra 2 matrici 3x5 e 5x4 */ class Matrici { public static void main(String[] args) { int a[][]=new int[3][5]; int b[][]=new int[5][4]; int c[][]=new int[3][4]; int i, j, x, y, z; x=1; for(i=0; i<3; i=i+1) { for(j=0; j<5; j=j+1) { a[i][j]=x; x=x+1; } } y=1; for(i=0; i<5; i=i+1) { for(j=0; j<4; j=j+1) { b[i][j]=y; y=y+1; } } for(z=0; z<3; z=z+1) { for(i=0; i<3; i=i+1) { for(j=0; j<4; j=j+1) { c[i][j]+=a[z][j]*b[j][i]; } } } for(i=0; i<3; i=i+1) { for(j=0; j<5; j=j+1) { System.out.print(a[i][j]+" "); } System.out.println(""); } System.out.println(""); for(i=0; i<5; i=i+1) { for(j=0; j<4; j=j+1) { System.out.print(b[i][j]+" "); } System.out.println(""); } System.out.println(""); for(i=0; i<3; i=i+1) { for(j=0; j<4; j=j+1) { System.out.print(c[i][j]+" "); } System.out.println(""); } } } |
12-10-2006, 18.28.53 | #2 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
|
Prima una nota "di servizio": per postare del codice ti conviene usare un tag per non conservare la formattazione, per esempio così (il "code" non mi funziona )
[php]for (i = 0; i < 10; i ++) System.out.println("Hola!");[/php] altrimenti senza copiarlo/incollarlo in un IDE con il code reformatting è impresa ardua leggerlo Poi la risposta: il problema ovviamente sta nel calcolo della matrice C. [php]// calcolo matrice C for(z=0; z<3; z++) for(i=0; i<3; i++) for(j=0; j<4; j++) c[i][j] += a[z][j]*b[j][i];[/php] La posizione degli indici nell'espressione di calcolo è corretta, ma vanno messi a posto gli intervalli in cui gli indici si spostano: se z cicla sulle righe della matrice A, che sono appunto 3, i cicla sulle colonne della matrice B, che sono 4 (e non 3), mentre j cicla sulla colonna della matrice A (o sulla riga della matrice B, come si vuole), e quindi deve andare da 0 a 4, cioè deve essere limitato a 5. Il tutto risulta quindi così: [php]// calcolo matrice C for(z=0; z<3; z++) for(i=0; i<4; i++) for(j=0; j<5; j++) c[i][j] += a[z][j]*b[j][i];[/php] Ciao |
13-10-2006, 13.56.41 | #3 |
Newbie
Registrato: 23-08-2006
Messaggi: 22
|
Grazie
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Algebrus 2.2 | Dav82 | Archivio News Software | 0 | 02-11-2005 12.26.47 |
[VB.Net] Matrici di matrici | wicasa | Programmazione | 0 | 25-08-2004 21.24.13 |
I soliti siciliani: a noi tagliano le tasse, loro si aumentano gli stipendi | Dav82 | Chiacchiere in libertà | 9 | 01-08-2004 03.23.48 |
Calcolo tra matrici | GiulioCesare | Programmazione | 1 | 02-10-2003 00.47.04 |