astuce pour savoir si deux matrices peuvent "s'emboiter" ? - Algo - Programmation
Marsh Posté le 05-12-2003 à 18:41:18
cette astuce àa s'appelle un algo. le truc simple :
- les matrices doivent être de même dimension
- a(i, j)==0 ou b(i, j)==0 pour chaque i de 0 à n pour chaque j de 0 à m
Marsh Posté le 05-12-2003 à 21:40:16
somme = somme de mat1[i][j] * mat2[i][j]
si somme == 0 alors emboîtage.
Marsh Posté le 06-12-2003 à 04:39:41
D'autant que le coup de la multiplication ne marche que si les nombres sont positifs... Ou comment faire compliqué et faux quand on peut faire simple et juste
Marsh Posté le 06-12-2003 à 16:15:34
Taz a écrit : et en plus t'es lourd... |
Citation : somme = somme de mat1[i][j] * mat2[i][j] |
yop c'est bien un truc de ce style que j'imaginais, mais c'est vrai que c'est quand meme tout simple de faire une comparaison.
C'est bizarre, mais c'est toujours plus clair quand ca vient de quelqu'un d'autre. J'ai tendance à tout mélanger quand je réfléchie tout seul (du verbe réfléchier bien entendu)...
Marsh Posté le 06-12-2003 à 16:20:10
mieux vaut 2 comparaisons, la multiplication est bien plus couteuse qu'un test
Marsh Posté le 09-12-2003 à 10:30:50
art_dupond a écrit : yop |
Une autre idée serait d'administrer l'objet matrice à travers une signature représentant l'empreinte binaire des (i,j) affectés:
Empreinte de ta 1ère matrice:
101
011
100
Empreinte de ta 2e matrice:
010
000
011
Ce qui donne les signatures 101011100 et 010000011 dans l'alphabet booléen, mais stockées bien sûr en décimal (s1=348 et s2=131).
Les deux matrices s'emboîtent si: ( s1 AND s2 == 0 )
Marsh Posté le 09-12-2003 à 11:12:37
ACut a écrit : |
pour faire ton empreinte, faut faire les comparaisons
Ca n'a d'intérêt que si on conserve cette empreinte
Marsh Posté le 10-12-2003 à 15:55:51
noldor a écrit : pour faire ton empreinte, faut faire les comparaisons |
Oui, je parlais bien du mode d'administration de l'objet matrice. Typiquement si c'est une classe, les méthodes d'affectation des "cases" (i,j) (les "setters" ) gèreraient en parallèle l'information booléenne constituant l'empreinte.
Je reconnais que ça ne relève pas de l'algo mais de l'implémentation. Je trouvais ça joli de tout ramener à un AND in fine.
Marsh Posté le 10-12-2003 à 19:00:56
yop, merci je pense que ca va me servir
j'aime bien ce genre de trucs, mais je n'y pense jamais de moi-meme
merci
Marsh Posté le 05-12-2003 à 18:36:41
yop
y a-t-il une astuce pour savoir si deux matrices peuvent s'emboiter ?
( 15 0 18 ) ( 0 55 0 )
( ) ( )
( 0 15 88 ) et ( 0 0 0 )
( ) ( )
( 88 0 0 ) ( 0 97 14 )
peuvent s'emboiter parce qu'un nombre d'une matrice écrasera toujours un zéro de l'autre matrice.
j'espère que c'est clair
je suis neuneu ! n'est-ce pas ?
---------------
oui oui