< Back to IRCAM Forum

Question basique sur le random

Bonjour tout le monde,

je ne trouve pas la syntaxe pour induire un random “déterminé” sans répétition… Si j’arrive bien à tirer aléatoirement des valeurs dans une table, je n’arrive pas à faire en sorte que ne soit répétée deux fois une même valeur au cours d’un tirage dans une durée impartie… Cela dit j’imagine volontiers que je tourne à côté de la réponse toute faite dans la doc’en ligne, auquel cas désolé…

Merci d’avance de votre aide!

Bonne fin de journée,

Lorangeverte

Bonjour l’Orange Verte.

Il n’y a pas de fonction random qui évite les répétitions (le résultat ne serait pas random). Mais on peut tirer au hasard les éléments d’un tableau puis supprimer les éléments dupliqués dans le tableau grâce à @remove_duplicate() (doc. @remove_duplicate)

Par exemple @remove_duplicate([@rand_int(10) | (20)]) va d’abord produire un tableau de 20 nombre entre 0 et 9 (il y a donc des répétitions) et les doublons sont ensuite supprimé (avec un peu de chance on aura les 10 premiers entiers dans un ordre quelconque).

Si on a besoin d’un tableau sans répétition d’une taille n donnée, on peut générer un tableau beaucoup plus grand, enlever les doublons et ne retenir que les n premier élément avec @take().

On peut aussi partir d’un tableau qui contient les bon éléments au départs, dans un ordre donné, et utiliser @scramble() pour réordonner les éléments au hasard.

Bonjour Jean-Louis Giavitto.

une fois encore un grand merci pour votre réponse très instructive.
Même si c’était par curiosité plus que nécessité que j’ouvrais cette discussion (car in fine dans mon cas il s’agira de traiter un à un les éléments d’un tableau donnés dans un ordre précis), j’ai un petit peu exploré chacun de vos exemples et tous m’ont laissé imaginer bien de super choses dans d’autres situations.
Ah, lors de cette exploration, j’eus beau randomé et scramblé à foison les éléments d’un tableau dans un ordre donné au départ, je les ai toujours retrouvé dans un autre… Cela va sans dire que je n’ai guère eu de chance au tirage, mais en même temps cela semble confirmer que “rien n’est plus proche du vrai que le faux”.

À bientôt,

Lorangeverte

Hello :slight_smile:

Peut-être une une condition ou deux supplémentaires au bout de code de Jean_louis… à la manière de l’objet urn-jb dans Max ? Cf. image attachée.

Bye

N.

Screen-Shot-2019-01-28-at-23.54.32.png