Page 1 sur 1

Tester l'égalité de deux tableaux

MessagePosté: Lundi 06 Juin 2011, 12:55
par cerise
Bonjour,

Je cherche à tester si deux tableaux ont les mêmes éléments. Existe-t-il une fonction qui fasse ça ?

Sinon, j'en programmerai une à la main.

Cerise

Re: Tester l'égalité de deux tableaux

MessagePosté: Lundi 06 Juin 2011, 12:59
par OG
Bonjour

Voici ce que dit la doc
Asymptote includes a full set of vectorized array instructions for arithmetic (including self) and logical operations. These element-by-element instructions are implemented in C++ code for speed. Given

real[] a={1,2};
real[] b={3,2};
then a == b and a >= 2 both evaluate to the vector {false, true}. To test whether all components of a and b agree, use the boolean function all(a == b). One can also use conditionals like (a >= 2) ? a : b, which returns the array {3,2}, or write((a >= 2) ? a : null, which returns the array {2}.


Il semble donc que oui (même taille, mêmes éléments).

O.G.

Re: Tester l'égalité de deux tableaux

MessagePosté: Lundi 06 Juin 2011, 13:45
par cerise
Bonjour,

Merci pour ton aide.

En effet, cela fonctionne pour des tableaux dont les éléments sont entiers (ou réels).
"==" fonctionne encore pour des tableaux de tableaux d'entiers, mais a le comportement qu'on attendrait de "all(a == b)", tandis que "all" ne fonctionne plus.
Et pour des tableaux de tableaux de tableaux, cela ne fonctionne plus du tout (et je suis dans ce cas...).

Bon, cela dit, il se trouve que mon grand tableau n'a que deux éléments (qui sont des matrices, donc des tableaux de tableaux) : je teste donc séparément pour ces deux matrices grâce à ta solution, et ça me convient.