Matrice Creuse vs Matrice réduite

Fermé
Makoumba - 7 févr. 2008 à 23:45
 nabil_infs - 16 avril 2009 à 19:35
Bonjour,

J'ai un gros probleme avec les matrices!!!Elles m'aiment pas l0l

k sérieusement j'ai aucune idée comment faire un programme (C++) qui crée une matrice réduite (MatrReduite[][]) à partir d'une matrice creuse (MartCreuse[4][7]) qui contient des valeurs entières et que si la matrice creuse contient plus de 50% de valeurs non nulles, il faut que le programme avertisse que la création de la matrice réduite n'est pas efficace (j'image qu'il faut pour ça un if dans une grosse boucle for...ou sinon un while..jme trompe peut-être et à mon avis surment!)
En gors le programme doit permettre à l'usager d'entrer les valeur de la matrice creuse, d'afficher cette matrice et si possible la matrice réduite.

Je sais que jvous pose le probleme comme ça...mais c'est-à-dire que je débute dans le domaine jai de vague notion sur les boucles et pour les tableaux jsais qu'afficher la position d'une valeur. Bref j'espère que vous aller m'aider ou sinon bien m'orienter sur le problème...merci d'avance!
A voir également:

7 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 févr. 2008 à 00:45
En notation algorithmique :
mat : Matrice à nbLignes et nbColonnes
caseNulle : entier
coeff : double

caseNulle=0
Pour i de 0 à nbLignes Faire
   Pour j de 0 à nbColonnes Faire
        Si (mat[i][j] == 0) Alors 
           caseNulle=caseNulle+1 
        FinSi
   FinPour
FinPour
coeff= caseNulle / (i*j)

Si(coeff>0.5) Alors
    MatriceReduite(mat)
FinSi

4
opération sur la matrice creuse en c++
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 févr. 2008 à 00:12
Pour tester l'efficacité d'une matrice réduite. Tu peux parcourir toutes les cases de ta matrice, tu testes si la case est vide, si oui tu augmentes une variable caseNulle. Une fois toutes les cases parcourues, tu divises caseNulle par le nombre de cases totales.
Si le nouveau résultat est supérieur à 0.5 alors, une matrice réduite serait intéressante.

En espérant t'avoir aidé.

Bon code
1
c'est encore flou pour moi :S
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
quelle partie fait quoi???
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
12 févr. 2008 à 22:03
Salut,

Je pense qu'avec l'ensemble des posts, tu as moyen de comprendre toute seule ;)
0
ha ha ! c'est correcte ...UN GROS MERCI !!! ;) je sais pas pourquoi j'ai fais un blocage là-dessus...Tout va pour le mieux maintenant, sauf qu'il faudrait que je renforce mes bases. Est-ce que t'a des titres de livre ou des sites pour que je puisse m'améliorer. Je connais celui de
https://openclassrooms.com/fr/ ,mais il n'y a pas trop d'exercices ....

En tout cas, merci encore
0