OVH Cloud OVH Cloud

chiffre aléatoire

2 réponses
Avatar
roger
bonjour, j'ai 106 jetons, et je veut les tirer un par un aléatoirement,
j'utilise la fonction rnd, mais ça me semble pas tellement fonctionnelle,
car il sort toujours des petits chiffres!

ex:

goto depart
randomize
a=int(rnd(106)*100)
if jetons(a)="" then goto depart
' sinon j'affiche le jeton corespondant, et je met le jetons(a)="" pour
ne plus le resortir.
Y a-t-il un meilleur moyen ?
merci d'avance
roger

2 réponses

Avatar
Salut

Tiens, ça faisait longtemps que je voulais imaginer un tirage au sort "à mémoire" :

Adapte la routine ci-dessous :

Sub TestTirage()
On Error Resume Next
Const NbJetons As Integer = 106
Dim OrdreSortie As Integer
Dim TirageTmp As Integer
Dim DejaSorti(1 To NbJetons) As Boolean

Randomize

For OrdreSortie = 1 To NbJetons
Do Until DejaSorti(TirageTmp) = False
TirageTmp = -Int(-Rnd * NbJetons)
Loop
DejaSorti(TirageTmp) = True
Debug.Print TirageTmp
Next OrdreSortie

End Sub


a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"roger" a écrit dans le message de news: 4489a865$0$27349$
bonjour, j'ai 106 jetons, et je veut les tirer un par un aléatoirement, j'utilise la fonction rnd, mais ça me semble pas tellement
fonctionnelle, car il sort toujours des petits chiffres!

ex:

goto depart
randomize
a=int(rnd(106)*100)
if jetons(a)="" then goto depart
' sinon j'affiche le jeton corespondant, et je met le jetons(a)="" pour ne plus le resortir.
Y a-t-il un meilleur moyen ?
merci d'avance
roger



Avatar
le méruvien
Bonjour, et merci, j'ai fait un autre systeme qui marche
bon week end



<Anor> a écrit dans le message de news:

Salut

Tiens, ça faisait longtemps que je voulais imaginer un tirage au sort "à
mémoire" :

Adapte la routine ci-dessous :

Sub TestTirage()
On Error Resume Next
Const NbJetons As Integer = 106
Dim OrdreSortie As Integer
Dim TirageTmp As Integer
Dim DejaSorti(1 To NbJetons) As Boolean

Randomize

For OrdreSortie = 1 To NbJetons
Do Until DejaSorti(TirageTmp) = False
TirageTmp = -Int(-Rnd * NbJetons)
Loop
DejaSorti(TirageTmp) = True
Debug.Print TirageTmp
Next OrdreSortie

End Sub


a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"roger" a écrit dans le message de news:
4489a865$0$27349$
bonjour, j'ai 106 jetons, et je veut les tirer un par un aléatoirement,
j'utilise la fonction rnd, mais ça me semble pas tellement fonctionnelle,
car il sort toujours des petits chiffres!

ex:

goto depart
randomize
a=int(rnd(106)*100)
if jetons(a)="" then goto depart
' sinon j'affiche le jeton corespondant, et je met le jetons(a)=""
pour ne plus le resortir.
Y a-t-il un meilleur moyen ?
merci d'avance
roger