OVH Cloud OVH Cloud

Les Matheux, au secours !!!

9 réponses
Avatar
paratge
Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge

9 réponses

Avatar
Firetox
Bonjour

tantque i<= 19
j = Hasard(1,20)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
si m=-1 alors
tableauAjoute(gfValeurs,j)
i++
fin
Trace(i,j)
FIN

devrait mieu fonctionne


"paratge" a écrit dans le message de news:
452cf059$0$25935$
Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge


Avatar
paratge
Firetox a écrit :
Bonjour

tantque i<= 19
j = Hasard(1,20)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
si m=-1 alors
tableauAjoute(gfValeurs,j)
i++
fin
Trace(i,j)
FIN

devrait mieu fonctionne


"paratge" a écrit dans le message de news:
452cf059$0$25935$

Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge









Merci pour ton aide,

cependant, ton code créé une boucle qui n'en finit pas au niveau de i =
7. quelle en est la raison ?
Avatar
Firetox
car il boucle sur des valeur deja sortie
il faudrait mettre un hasard(1,100) ou meme 1000

car sinon il faut attendre qu'il sorte tous les numero au hasard et comme tu
en veux exactement le meme nombre
ca boucle plus ou moins

"paratge" a écrit dans le message de news:
452cf5c2$0$25950$
Firetox a écrit :
Bonjour

tantque i<= 19
j = Hasard(1,20)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
si m=-1 alors
tableauAjoute(gfValeurs,j)
i++
fin
Trace(i,j)
FIN

devrait mieu fonctionne


"paratge" a écrit dans le message de news:
452cf059$0$25935$

Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort
pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge









Merci pour ton aide,

cependant, ton code créé une boucle qui n'en finit pas au niveau de i = 7.
quelle en est la raison ?


Avatar
sg
le principe pour ce genre de problème c'est créer une table avec les valeurs
de 1 à 20
aléatoirement choisir un case puis l'enlever du tableau tirage de 1 à 19 et
ainsi de suite comme cela jamais de doublons et pas de boucle de longeur
inconnue

Jean-Jacques
WebJaseur.com

"paratge" a écrit dans le message de news:
452cf059$0$25935$
Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge


Avatar
DAIREAUX Jean-Baptiste
"paratge" a écrit dans le message de news:
452cf059$0$25935$
Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.



[...]
Merci d'avance pour votre temps


paratge



Remplir un tableau avec les 20 éléments et les tirés un a un :

i,j,valeur_tirer sont des entier

POUR i=1 A 20
TableAjouteLigne("table",i)
FIN

InitHasard()
i
TANTQUE i>0
j = Hasard(1,i)
valeur_tirer=table.valeur[j]
//ici faire ce que tu veux avec la valeur
TableSupprime("table",j)
i--
FIN

J.B.D.
Avatar
Géo
ou encore mettre un 1 dans la 1ere ligne du tableau, puis 2 dans la seconde,
etc... et ensuite tu mélanges, c'est à dire que tu permutes les contenus de
deux lignes choisies au hasard. Il faudrait au moins 20 permutations pour
qu'en théorie tout nombre puisse se retrouver n'importe où.
Géo

"sg" a écrit dans le message de news:
452d0d85$0$31462$
le principe pour ce genre de problème c'est créer une table avec les
valeurs de 1 à 20
aléatoirement choisir un case puis l'enlever du tableau tirage de 1 à 19
et ainsi de suite comme cela jamais de doublons et pas de boucle de
longeur inconnue

Jean-Jacques
WebJaseur.com

"paratge" a écrit dans le message de news:
452cf059$0$25935$
Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort
pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un valeur
unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers
InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j)
FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge







Avatar
paratge
Merci a tous pour votre aide.

Malgré cela, je me retrouve encore avec des doublons...

J'ai donc changé le fusil d'épaule et généré 33000 enregistrements de 20
valeurs aléatoires.
Il me faut maintenant remplacer les doublons par les valeurs absentes.

Comment puis-je lire chaque enregistrement, et remplacer les doublons
par une valeur absente, sachant qu'il me faut obligatoirement les 20
valeurs différentes par enregistrement ?

Je suis désolé de vous emm....der avec mes problèmes, mais je nage
complètement.


Merci d'avance
Avatar
Daniel
Bonjour,
paratge writes:

Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort
pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un
valeur unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j) FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge




Une autre variante qui fonctionne


j=0
i=1
BOUCLE
j =Hasard(1,20)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m = -1 ALORS
gfValeurs[i]=j
i++
FIN
SI i >20 ALORS SORTIR
FIN

POUR i=1 A 20
Trace(i,gfValeurs[i])
FIN


--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
paratge
Merci à tous pour votre aide.:)


Daniel a écrit :
Bonjour,
paratge writes:


Bonjour,

Je dois avoir un blocage quelconque depuis hier, mais je ne m'en sort
pas.

Je dois générer pour chaque valeur d'une liste de 20 éléments, un
valeur unique (sans doublon dans la liste) et ce, de façon aléatoire.

Mon problème est que je n'arrive pas à me débarrasser des doublons.

voici mon code:

gfValeurs est un tableau de 20 entiers InitHasard()

POUR i = 0 A 19
j = Hasard(1,20)
TableauAjoute(gfValeurs,j)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m <> -1 ALORS
gfValeurs[m] = Hasard(1,20)
FIN
Trace(i,j) FIN


Pouvez-vous me dire ce qui cloche ?


Merci d'avance pour votre temps


paratge





Une autre variante qui fonctionne


j=0
i=1
BOUCLE
j =Hasard(1,20)
m = TableauCherche(gfValeurs,tcLinéairePremier,j)
SI m = -1 ALORS
gfValeurs[i]=j
i++
FIN
SI i >20 ALORS SORTIR
FIN

POUR i=1 A 20
Trace(i,gfValeurs[i])
FIN