Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2944 connectés 

  FORUM HardWare.fr
  Programmation

  c[i][j] = somme_k( a[i][k] x b[k][j] ) ????? ça vous dit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

c[i][j] = somme_k( a[i][k] x b[k][j] ) ????? ça vous dit

n°16401
Pschitt
Posté le 28-02-2001 à 20:17:56  profilanswer
 

Y a t_il une âme avertie et généreuse pour m'éclairer sur un sujet délicat.
 
Voila, on doit faire une fonction(sans déclarations globales) réalisant l'opération suivante :  
 
        c[i][j] = somme_k( a[i][k] x b[k][j] ) ?????
 
Le pb est que je ne comprends déja pas cete opération donc je suis loin d'en faire une fonction.
Je crois que notre prof est débile !!
 
Help !
 
Merci

mood
Publicité
Posté le 28-02-2001 à 20:17:56  profilanswer
 

n°16402
jupiler
Un cousin...
Posté le 28-02-2001 à 20:20:49  profilanswer
 

ca yen a etre le produit de matrice C=A*B
 
tu dois le faire dans quel language?

n°16403
verdoux
And I'm still waiting
Posté le 28-02-2001 à 20:21:09  profilanswer
 

Ben c'est une multiplication de matrices.
Tu fais 2 boucles sur les i,j avec à l'intérieur une boucle sur l'indice k.

n°16412
Pschitt
Posté le 28-02-2001 à 21:22:20  profilanswer
 

Vous croyer que c'est uniquement le produit de 2 mat. rangé dans une 3ème.
L'expression me paraît pluôt compliqué pour décrire cette "simple" opération.
 
Sinon c'est du C, tous en local pour compliquer l'exercice  
 
Merci de vos attentions

n°16416
la viper
Posté le 28-02-2001 à 21:38:58  profilanswer
 

non ca a l'air d'une matrice ... ik * kj = ij donc la multiplication est possible.
 
 
en C, il doit surement y avoir des librairies pour faire des calculs de matrices sinon avec la methode de base tu vas faire mouliner ton pc !!!.

n°16419
Pschitt
Posté le 28-02-2001 à 21:48:12  profilanswer
 

Je me demande si le k ne veux pas dire, de façon détournée, un appel à la fonction ligne de matrice par ligne de matrice ??
 
Mais Somme_k je ne comprends pas (Attention Ici k est 1 indice de somme)

n°16427
BifaceMcLe​OD
The HighGlandeur
Posté le 28-02-2001 à 23:00:55  profilanswer
 

typedef double[][] Matrice;
 
/* N est la taille des 3 matrices, supposées carrées. */
void produit(Matrice a, Matrice b, Matrice resultat, int N)
{
    int i, j, k;
 
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            double  somme = 0;
 
            for (k = 0; k < N; k++) {
                somme += a[ i][k] * b[k][j];
            }
 
            resultat[ i][j] = somme;
        }
    }
}
 
Pas sorcier, pourtant...

 

--Message édité par BifaceMcLeOD--

n°16439
Pschitt
Posté le 28-02-2001 à 23:49:27  profilanswer
 

T'en suis trés reconaissant BifaceMcLeOD même si j'en demandais pas autant ça fait toujours plaisir.
Dis moi le code ne ta pas l'air étranger ?
 
J'avais finalement prévu de le faire autrement :
 
som_vect(mat_a,mat_b,mat_c,nb_lig,nb_col)
 
 int * mat_a;  
 int * mat_b;
 int * mat_c;
 int nb_lig,nb_col;
 
{int i,j;
 
 for(i=0;i<=nb_lig;i++)
 
       for(j=0;j<=nb_col;j++)
 
               *(mat_c+i*nb_col+j)=*(mat_a+i*nb_col+j)+*(mat_b+i*nb_col+j);
}
 
Je pense que le résultat doit être identique
 
Encore Merci

n°16448
BifaceMcLe​OD
The HighGlandeur
Posté le 01-03-2001 à 01:06:01  profilanswer
 

Ben je programme depuis quelques années maintenant, alors... j'ai acquis un peu d'expérience...
 
Sinon, pour info, nos 2 codes sont radicalement différents. Je fais 3 boucles imbriquées, alors que tu n'en fais que 2...
 
En pratique, tu as calculé la somme de 2 matrices, alors que j'en ai fait le produit. Et puis les tableaux à 2 dimensions, ça existe... et c'est plus clair. J'ai réécrit ta fonction pour te montrer :
 
void somme(Matrice a, Matrice b, Matrice resultat, int nb_lig, int nb_col)
{
    int i, j;
 
    for (i = 0; i < nb_lig; i++) {
        for (j = 0; j < nb_col; j++) {
            resultat[ i][j] = a[ i][j] + b[ i][j];
        }
    }
}
 
N'est-ce point un tantinet plus clair ? :D
Et puis attention, tu as 2 bugs dans ta fonction. Les 2 tests de fin de boucle vont provoquer une erreur mémoire, car tu vas faire une itération de trop à chaque fois et déborder de ton tableau. Il faut remplacer tes '<=' par des '<'.
 
Voilà.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  c[i][j] = somme_k( a[i][k] x b[k][j] ) ????? ça vous dit

 

Sujets relatifs
sql server : comment faire une somme avec des nvarchar ????? 
Plus de sujets relatifs à : c[i][j] = somme_k( a[i][k] x b[k][j] ) ????? ça vous dit


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)