Tester l'égalité de deux tableaux

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Tester l'égalité de deux tableaux

Message non lu 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
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
OG
Modérateur honoraire
Modérateur honoraire
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Tester l'égalité de deux tableaux

Message non lu 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.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Tester l'égalité de deux tableaux

Message non lu 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.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry