Routine aléatoire : comment éviter les doublons ?

Messages postés
17
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
28 octobre 2008
-
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
-
Bonjour,
j'utilise une routine aléatoire et je voudrais éviter les doublons (c'està dire que le même nombre sorte deux fois). Est ce que quelqu'un peut m'aider?????????
Merci
alaga

8 réponses

Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
NDX := 0;
for j := 1 to 5 do
begin
cot := cot + 1;
Randomize;
TAB5[j] := RandomFrom(INFMOY);
if j = 5 then break;
// Mise à zéro de la valeur trouvée
for i := 0 to (ifm - 1) do
if INFMOY[i] = TAB5[j] then
INFMOY[i] := 0;
// suppression des zéros
for k := 0 to ((ifm - 1) - (j - 1)) do
if INFMOY[k] <> 0 then
begin
INFMOY[NDX] := INFMOY[k];
NDX := NDX + 1;
end;
// Dimensionnement à la sélection
SetLength(INFMOY, ((ifm - 1) - (j - 1)));
NDX := 0;
end
un ex pour 5 nombres


n'oublie pas les déclarations..J'avais déjà fait ça il y a un moment
ce n'est pas top mais ça marche..
Messages postés
17
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
28 octobre 2008

Merci je vais essayer.
alaga
Messages postés
17
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
28 octobre 2008

salut,
mon application n'accepte pas le RandomFrom.
je n'arrive pas à utiliser ce que tu m'as transmis.
help!!!
merci
alaga
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
il te manque un uses : Math

cantador
Messages postés
17
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
28 octobre 2008

Je n'y arrive pas!!

voilà une partie de mon code :

procedure configuration;
var I, A :integer;
begin
If groupe = 1 then
begin
Randomize;
For I := 0 to 5 do begin
A:= StrToInt(Situationsdemineurs.ITEM1.Items[Random(I)]);
end;
end;

j'ai une liste (ITEM1) et je voudrait générer une pioche aléatoire dans cette liste sans jamais avoir de doublons.

pouvez vous m'aider ???????
MERCI!!!!!!!!!
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
c'est le uses qui ne marche pas ?
et quelle version de delphi utilises-tu ?

cantador
Messages postés
17
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
28 octobre 2008

j'utilise delphi6.
eh oui, le uses n'est pas accepté.
alaga
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
Salut,
Alaga tu dis : "le Uses n'est pas accepté"
ben ta un drole de Delphi toi

Ex.

Implementation
Uses Math;
{$R *.dfm}

Et la tu peux utiliser RandomFrom

@+
Cirec