amiraenrique
Messages postés1Date d'inscriptionjeudi 29 décembre 2011StatutMembreDernière intervention30 décembre 2011
-
30 déc. 2011 à 00:55
doctormad
Messages postés430Date d'inscriptionmercredi 28 novembre 2007StatutMembreDernière intervention 2 avril 2015
-
30 déc. 2011 à 00:59
Bonjour,
<config>Windows 7 / Safari 535.7</config>
s'ils vous plait quelquin m'aider à calculer cette matrice
j'ai un exo qui dit:
voila 2 matrices creuses A et B tq A=(0 12 0 0) et B=(0 0 0 21)
34 0 0 54 0 4 0 13
0 0 31 0 0 0 0 13
0 142 0 0 1 24 11 67
et soit 2 vecteurs suivant:
a=(12 34 54 31 142) b=(21 4 13 1 24 11 67)
1-trouver la relation entre les elements non nuls de chaque matrice
2-donner l'algo qui transforme les 2 mat A et B en vecteurs a,b
3-generaliser pour la taille n*n
4-donner l'algo inverse qui fait le passage de a et b vers A et B
5-generaliser pour n
6-quelle est la relation entre la taille des matrices et des vecteurs
7- si la taille de vecteur ne satisfait pas la relation prescedent, que proposez vous comme solution pour ameliorer l'algo
8-utiliser C++ pour programmer les algorithmes trouve
j'ai essayer de reponder mais je suis débutante avec ce program c++ et j'ai pas étudier les mat creuses en math. voilà mes reponces....
1-pour la mat A on a les valeurs non nuls(12 34 54 31 142)
leurs indices (12 21 24 33 42)
pour B les val non nuls (21 4 13 13 1 24 11 67)
leurs indices (14 22 24 34 41 42 43 44)
on remarque que les indices de chaque mat sont inversé comme 41 et 14 ou bien répeté,
c la seule relation que j'ai trouvé.
2-l'algo
A,B: matrice[4][4]
casenulle1,casenulle2:entier
coeff1,coeff2: double
casenulle1=0, casenulle2=0
pour i de 0 à 4 faire
pour j de 0 à 4 faire
lire(A[i][j],B[i][j])
finsi
fin pour
fin pour
pour i de 0 à 4 faire
pour j de 0 à 4 faire
si(A[i][j]=0) alors
casenulle1=casenulle1+1
finsi
fin pour
fin pour
pour i de 0 à 4 faire
pour j de 0 à 4 faire
si (B[i][j]=0) alors
casenulle2=casenulle2+1
finsi
fin pour
fin pour
coeff1=casenulle1/(i+j)
si(coeff1>0.5) alors
matriceReduite(A)
finsi
coeff2=casenulle2/(i+j)
si (coeff2>0.5) alors
matriceReduite2(B)
finsi
mais je ne sais comment aller de matReduite vers vecteurs a ou b
3- generalisation:
A,B: matrice[n][n]
casenulle1,casenulle2:entier
coeff1,coeff2: double
casenulle1=0, casenulle2=0
pour i de 0 à n faire
pour j de 0 à n faire
lire(A[i][j],B[i][j])
finsi
fin pour
fin pour
pour i de 0 à n faire
pour j de 0 à n faire
si(A[i][j]=0) alors
casenulle1=casenulle1+1
finsi
fin pour
fin pour
pour i de 0 à n faire
pour j de 0 à n faire
si (B[i][j]=0) alors
casenulle2=casenulle2+1
finsi
fin pour
fin pour
coeff1=casenulle1/(i+j)
si(coeff1>0.5) alors
matriceReduite(A)
finsi
coeff2=casenulle2/(i+j)
si (coeff2>0.5) alors
matriceReduite2(B)
finsi
4- l'algo inverse je ne sais rien pour le calculer
5-aussi
6- la relation c la taille de vecteurs est superieure ou egale au nbr de lignes ou de colonnes, j'ai seulement trouvé ça
7-?????
8-le program
#include <iostream>
using namespace std;
int main(int){
int MatrCreuse[4][4];
int MatrReduite[4][4];
int compteur;
compteur = 0;
{for (int i=0 ; i< 4; i++){
for (int j=0; j< 4; j++){
cout << "Entrer la veurleur en mm ";
cin >> MatrCreuse[i][j];
}
}}// boucle d'afectation de donnée
cout << endl;
{for (int i=0 ; i< 4; i++){
for (int j=0; j< 4; j++){
cout << MatrCreuse[i][j] <<" ";
}
}}// boucle 2 affichage de la matrice
for (int i=0 ; i< 4; i++){
for (int j=0; j< 4; j++){
if (MatrCreuse[i][j] !=0){
compteur++;
}//condition I
}
}// boucle de comptage
if (compteur > MatrCreuse[4][4]/2){
cout << " Creation de Matrice non efficace"<< endl;
}// condition II
else {
cout << endl;
for (int i=0; i< 3 ; i++){
for (int j=0; j< compteur; j++){
cout << MatrReduite[compteur][3];
}
} // fin d'affichage Matrice Réduite
}// fin du else
}// in
*fin de main
vraiment je ne sais pas cmt faire un program
s'il vous plait aidez moi
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.