Page 1 sur 2

Générateur de dés...

Publié : mar. 12/sept./2023 21:54
par Shadow
Salut, je fais des petits test sur la fréquence de nombre (Dés).
Je regarde la sortie des nombre pour voir leur fréquence d'apparition.
Je suis très étonné, j'ai eu un cas tour 37 à 51 ou sur 15 lancer de 3 dés, pas un seul 6, c'est chelou quand même !
Imagine, sur un seule dé ne pas faire de 6 pendent 45 fois 8O
Moi je pense que l'ordi il triche :mrgreen:

Le code:

Code : Tout sélectionner

Global NewList Liste1.i()
Global NewList Liste2.i()
Global NewList Liste3.i()
Global NewList Liste4.i()
Global NewList Liste5.i()
Global NewList Liste6.i()
Global NewList ListeNombres.s()

Procedure EnregistreListe(Nombre.i, Boucle.i)
  
  Select Nombre.i
      
    Case 1
      AddElement(Liste1.s())
      Liste1.i() = Boucle.i
      
    Case 2
      AddElement(Liste2.s())
      Liste2.i() = Boucle.i
      
    Case 3
      AddElement(Liste3.s())
      Liste3.i() = Boucle.i
      
    Case 4
      AddElement(Liste4.s())
      Liste4.i() = Boucle.i
      
    Case 5
      AddElement(Liste5.s())
      Liste5.i() = Boucle.i
      
    Case 6
      AddElement(Liste6.s())
      Liste6.i() = Boucle.i
      
  EndSelect
  
EndProcedure

For I = 1 To 100
  
  NombreAleatoire1.i = Random(6, 1)
  NombreAleatoire2.i = Random(6, 1)
  NombreAleatoire3.i = Random(6, 1)
  
  EnregistreListe(NombreAleatoire1.i, I)
  EnregistreListe(NombreAleatoire2.i, I)
  EnregistreListe(NombreAleatoire3.i, I)
  
  AddElement(ListeNombres.s())
  ListeNombres.s() = Str(NombreAleatoire1.i) + ", " + Str(NombreAleatoire2.i) + ", " + Str(NombreAleatoire3.i)
  
Next

ForEach Liste1.i()
  Elements.s + Str(Liste1.i()) + ", "
Next

Debug "Nombre 1: " + Elements.s
Elements.s = ""

ForEach Liste2.i()
  Elements.s + Str(Liste2.i()) + ", "
Next

Debug "Nombre 2: " + Elements.s
Elements.s = ""

ForEach Liste3.i()
  Elements.s + Str(Liste3.i()) + ", "
Next

Debug "Nombre 3: " + Elements.s
Elements.s = ""

ForEach Liste4.i()
  Elements.s + Str(Liste4.i()) + ", "
Next

Debug "Nombre 4: " + Elements.s
Elements.s = ""

ForEach Liste5.i()
  Elements.s + Str(Liste5.i()) + ", "
Next

Debug "Nombre 5: " + Elements.s
Elements.s = ""

ForEach Liste6.i()
  Elements.s + Str(Liste6.i()) + ", "
Next

Debug "Nombre 6: " + Elements.s
Elements.s = ""

Debug ""
Debug ""

ForEach ListeNombres.s()
  Tirage.i + 1
  Debug "Tirage n° " + Str(Tirage.i) + " = " + ListeNombres.s()
Next

Le log:

Nombre 1: 2, 3, 4, 4, 6, 7, 9, 9, 13, 20, 21, 21, 22, 24, 26, 29, 33, 34, 35, 37, 38, 40, 41, 42, 44, 44, 45, 46, 46, 47, 50, 51, 55, 55, 58, 64, 64, 65, 70, 75, 76, 76, 80, 81, 81, 85, 85, 88, 93, 97, 99, 100,
Nombre 2: 1, 1, 1, 2, 2, 5, 8, 8, 10, 10, 12, 16, 19, 22, 23, 30, 31, 32, 38, 40, 41, 42, 43, 44, 45, 46, 48, 51, 53, 54, 56, 56, 57, 60, 60, 63, 66, 67, 67, 68, 68, 69, 70, 70, 71, 72, 72, 72, 74, 75, 76, 78, 79, 84, 87, 88, 91, 95, 95, 96, 100,
Nombre 3: 3, 7, 11, 15, 17, 17, 18, 23, 26, 29, 30, 30, 31, 32, 39, 40, 45, 47, 48, 48, 49, 50, 52, 54, 56, 59, 60, 61, 61, 65, 66, 66, 74, 74, 75, 78, 79, 79, 82, 85, 89, 90, 92, 93, 93, 95, 97, 97, 98,
Nombre 4: 4, 8, 11, 11, 13, 14, 15, 16, 17, 19, 24, 25, 27, 28, 28, 31, 33, 33, 34, 35, 36, 39, 42, 43, 43, 47, 49, 50, 51, 52, 54, 57, 59, 61, 62, 63, 67, 69, 73, 73, 81, 83, 84, 87, 89, 90, 96, 98, 99,
Nombre 5: 3, 5, 6, 9, 12, 13, 14, 14, 15, 16, 18, 19, 20, 21, 23, 24, 26, 27, 29, 32, 36, 37, 37, 38, 39, 41, 49, 53, 58, 59, 62, 63, 65, 69, 71, 73, 78, 82, 82, 83, 86, 86, 87, 91, 92, 94, 94, 94, 96,
Nombre 6: 5, 6, 7, 10, 12, 18, 20, 22, 25, 25, 27, 28, 34, 35, 36, 52, 53, 55, 57, 58, 62, 64, 68, 71, 77, 77, 77, 80, 80, 83, 84, 86, 88, 89, 90, 91, 92, 98, 99, 100,


Tirage n° 1 = 2, 2, 2
Tirage n° 2 = 2, 2, 1
Tirage n° 3 = 1, 3, 5
Tirage n° 4 = 4, 1, 1
Tirage n° 5 = 5, 6, 2
Tirage n° 6 = 5, 6, 1
Tirage n° 7 = 1, 3, 6
Tirage n° 8 = 4, 2, 2
Tirage n° 9 = 1, 1, 5
Tirage n° 10 = 2, 2, 6
Tirage n° 11 = 3, 4, 4
Tirage n° 12 = 6, 2, 5
Tirage n° 13 = 5, 1, 4
Tirage n° 14 = 4, 5, 5
Tirage n° 15 = 4, 5, 3
Tirage n° 16 = 4, 5, 2
Tirage n° 17 = 3, 3, 4
Tirage n° 18 = 3, 6, 5
Tirage n° 19 = 2, 5, 4
Tirage n° 20 = 5, 6, 1
Tirage n° 21 = 1, 1, 5
Tirage n° 22 = 2, 6, 1
Tirage n° 23 = 2, 5, 3
Tirage n° 24 = 4, 1, 5
Tirage n° 25 = 6, 4, 6
Tirage n° 26 = 1, 5, 3
Tirage n° 27 = 6, 4, 5
Tirage n° 28 = 4, 4, 6
Tirage n° 29 = 3, 5, 1
Tirage n° 30 = 3, 3, 2
Tirage n° 31 = 4, 2, 3
Tirage n° 32 = 3, 2, 5
Tirage n° 33 = 4, 1, 4
Tirage n° 34 = 1, 6, 4
Tirage n° 35 = 6, 4, 1
Tirage n° 36 = 6, 5, 4
Tirage n° 37 = 1, 5, 5
Tirage n° 38 = 2, 1, 5
Tirage n° 39 = 3, 5, 4
Tirage n° 40 = 2, 3, 1
Tirage n° 41 = 1, 2, 5
Tirage n° 42 = 1, 2, 4
Tirage n° 43 = 2, 4, 4
Tirage n° 44 = 1, 1, 2
Tirage n° 45 = 2, 3, 1
Tirage n° 46 = 2, 1, 1
Tirage n° 47 = 3, 1, 4
Tirage n° 48 = 3, 3, 2
Tirage n° 49 = 3, 4, 5
Tirage n° 50 = 4, 1, 3
Tirage n° 51 = 1, 2, 4
Tirage n° 52 = 6, 4, 3
Tirage n° 53 = 6, 2, 5
Tirage n° 54 = 4, 3, 2
Tirage n° 55 = 1, 6, 1
Tirage n° 56 = 2, 2, 3
Tirage n° 57 = 6, 4, 2
Tirage n° 58 = 6, 1, 5
Tirage n° 59 = 3, 4, 5
Tirage n° 60 = 2, 3, 2
Tirage n° 61 = 3, 3, 4
Tirage n° 62 = 5, 6, 4
Tirage n° 63 = 5, 2, 4
Tirage n° 64 = 6, 1, 1
Tirage n° 65 = 5, 1, 3
Tirage n° 66 = 3, 2, 3
Tirage n° 67 = 2, 2, 4
Tirage n° 68 = 6, 2, 2
Tirage n° 69 = 5, 2, 4
Tirage n° 70 = 2, 2, 1
Tirage n° 71 = 6, 2, 5
Tirage n° 72 = 2, 2, 2
Tirage n° 73 = 4, 4, 5
Tirage n° 74 = 3, 2, 3
Tirage n° 75 = 2, 1, 3
Tirage n° 76 = 1, 1, 2
Tirage n° 77 = 6, 6, 6
Tirage n° 78 = 5, 2, 3
Tirage n° 79 = 2, 3, 3
Tirage n° 80 = 6, 6, 1
Tirage n° 81 = 4, 1, 1
Tirage n° 82 = 5, 3, 5
Tirage n° 83 = 4, 5, 6
Tirage n° 84 = 6, 2, 4
Tirage n° 85 = 1, 1, 3
Tirage n° 86 = 6, 5, 5
Tirage n° 87 = 5, 2, 4
Tirage n° 88 = 6, 1, 2
Tirage n° 89 = 6, 3, 4
Tirage n° 90 = 3, 4, 6
Tirage n° 91 = 5, 2, 6
Tirage n° 92 = 6, 3, 5
Tirage n° 93 = 3, 1, 3
Tirage n° 94 = 5, 5, 5
Tirage n° 95 = 2, 2, 3
Tirage n° 96 = 4, 5, 2
Tirage n° 97 = 3, 3, 1
Tirage n° 98 = 4, 6, 3
Tirage n° 99 = 6, 1, 4
Tirage n° 100 = 2, 1, 6

Re: Générateur de dés...

Publié : mer. 13/sept./2023 9:07
par case
les nombres aléatoires n'ont d'aléatoire que le nom, ils sont issus de calculs effectués par l'ordinateur
tu verra que si tu ajoute une ligne avant tes jets de dés

Code : Tout sélectionner

randomseed(0)
(j'ai mis 0 mais n'importe quel autre nombre ferait l'affaire)
la suite de nombre sera toujours la même .
c'est aussi cela qui permet a des jeux comme minecraft de générer des mondes complets a partir d'une graine ou ces mondes seront toujours les mêmes avec cette même graine.

alors c'est pas parfait mais c'est pas si mal et il faut s'en contenter ^^

Re: Générateur de dés...

Publié : mer. 13/sept./2023 12:47
par boddhi
Tu peux aussi rendre aléatoire le RandomSeed() par une interaction induite par l'utilisateur.
• Dans une boucle d'évènements, en mettant un RandomSeed() dans la boucle (While, Repeat,...)
• Par une action obligatoire (Input en mode console, MessageRequester en mode fenêtré)

Par exemple, juste avant :

Code : Tout sélectionner

For I = 1 To 100
Ajoute :

Code : Tout sélectionner

; //// Ajout ////
TempsEcoule.u=ElapsedMilliseconds()
MessageRequester("Tirage aléatoire","Appuyez sur Ok")
TempsEcoule=(ElapsedMilliseconds()-TempsEcoule)
RandomSeed(TempsEcoule)
; ///////////////

Re: Générateur de dés...

Publié : mer. 13/sept./2023 18:41
par Shadow
Salut, merci mais je ne crois pas que se sois la bonne méthode ?
A chaque fois se sera les même table entre chaque appel de la fonction, je n'aime pas ça.

J'ai un peu amélioré et ajouté des informations, et dégoté encore une anomalie, cette fois, 16 tour sans un seule 1 !

Le code:

Code : Tout sélectionner

Global NewList Liste1.i()
Global NewList Liste2.i()
Global NewList Liste3.i()
Global NewList Liste4.i()
Global NewList Liste5.i()
Global NewList Liste6.i()
Global NewList ListeNombres.s()

Procedure EnregistreListe(Nombre.i, Boucle.i)
  
  Select Nombre.i
      
    Case 1
      AddElement(Liste1.s())
      Liste1.i() = Boucle.i
      
    Case 2
      AddElement(Liste2.s())
      Liste2.i() = Boucle.i
      
    Case 3
      AddElement(Liste3.s())
      Liste3.i() = Boucle.i
      
    Case 4
      AddElement(Liste4.s())
      Liste4.i() = Boucle.i
      
    Case 5
      AddElement(Liste5.s())
      Liste5.i() = Boucle.i
      
    Case 6
      AddElement(Liste6.s())
      Liste6.i() = Boucle.i
      
  EndSelect
  
EndProcedure

For I = 1 To 100
  
  NombreAleatoire1.i = Random(6, 1)
  NombreAleatoire2.i = Random(6, 1)
  NombreAleatoire3.i = Random(6, 1)
  
  EnregistreListe(NombreAleatoire1.i, I)
  EnregistreListe(NombreAleatoire2.i, I)
  EnregistreListe(NombreAleatoire3.i, I)
  
  AddElement(ListeNombres.s())
  ListeNombres.s() = Str(NombreAleatoire1.i) + ", " + Str(NombreAleatoire2.i) + ", " + Str(NombreAleatoire3.i)
  
Next

ElementsPrecedent.i = 0

ForEach Liste1.i()
  
  Elements.s + Str(Liste1.i()) + ", "
  
  If Liste1.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste1.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste1.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste1.i()
  
Next

Debug "Nombre 1: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste2.i()
  
  Elements.s + Str(Liste2.i()) + ", "
  
  If Liste2.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste2.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste2.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste2.i()
  
Next

Debug "Nombre 2: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste3.i()
  
  Elements.s + Str(Liste3.i()) + ", "
  
  If Liste3.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste3.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste3.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste3.i()
  
Next

Debug "Nombre 3: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste4.i()
  
  Elements.s + Str(Liste4.i()) + ", "
  
  If Liste4.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste4.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste4.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste4.i()
  
Next

Debug "Nombre 4: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste5.i()
  
  Elements.s + Str(Liste5.i()) + ", "
  
  If Liste5.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste5.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste5.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste5.i()
  
Next

Debug "Nombre 5: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste6.i()
  
  Elements.s + Str(Liste6.i()) + ", "
  
  If Liste6.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste6.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste6.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste6.i()
  
Next

Debug "Nombre 6: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + ")"
Elements.s = ""

Debug ""
Debug ""

ForEach ListeNombres.s()
  Tirage.i + 1
  Debug "Tirage n° " + Str(Tirage.i) + " = " + ListeNombres.s()
Next


Le log:

Nombre 1: 2, 10, 10, 11, 13, 16, 18, 20, 21, 25, 26, 27, 27, 28, 29, 31, 33, 36, 37, 39, 40, 45, 45, 46, 46, 48, 49, 51, 52, 53, 54, 55, 55, 56, 57, 59, 62, 63, 65, 65, 66, 71, 72, 74, 74, 75, 76, 77, 94, 95, 97, 99, 99, Tour Louper maximum = 16 - (78 à 93)
Nombre 2: 2, 3, 4, 8, 10, 13, 17, 22, 22, 25, 26, 30, 32, 32, 35, 38, 39, 39, 41, 43, 49, 50, 54, 54, 56, 57, 57, 58, 60, 61, 63, 64, 68, 69, 73, 73, 76, 78, 80, 80, 82, 83, 85, 85, 86, 86, 88, 89, 89, 93, 94, 95, 98, Tour Louper maximum = 5 - (44 à 48)
Nombre 3: 3, 3, 5, 5, 6, 7, 7, 8, 12, 16, 18, 23, 24, 25, 28, 31, 32, 38, 41, 42, 42, 43, 43, 47, 48, 52, 53, 59, 60, 60, 64, 65, 66, 67, 69, 72, 74, 77, 78, 79, 93, 95, 96, 96, 97, 98, 100, Tour Louper maximum = 13 - (80 à 92)
Nombre 4: 1, 2, 4, 9, 13, 14, 14, 16, 17, 19, 23, 23, 24, 26, 27, 28, 31, 34, 35, 36, 36, 41, 44, 47, 49, 50, 55, 62, 67, 71, 71, 72, 73, 75, 78, 79, 80, 81, 83, 84, 87, 88, 90, 91, 91, 92, 92, 94, 99, 100, Tour Louper maximum = 6 - (56 à 61)
Nombre 5: 1, 1, 4, 6, 7, 8, 9, 9, 11, 12, 17, 19, 20, 24, 29, 29, 30, 33, 33, 37, 37, 38, 40, 44, 44, 45, 51, 52, 61, 61, 64, 67, 68, 69, 70, 70, 70, 76, 79, 82, 83, 84, 84, 85, 86, 87, 88, 98, 100, Tour Louper maximum = 9 - (89 à 97)
Nombre 6: 5, 6, 11, 12, 14, 15, 15, 15, 18, 19, 20, 21, 21, 22, 30, 34, 34, 35, 40, 42, 46, 47, 48, 50, 51, 53, 56, 58, 58, 59, 62, 63, 66, 68, 75, 77, 81, 81, 82, 87, 89, 90, 90, 91, 92, 93, 96, 97, Tour Louper maximum = 7 - (23 à 29)


Tirage n° 1 = 5, 5, 4
Tirage n° 2 = 1, 2, 4
Tirage n° 3 = 2, 3, 3
Tirage n° 4 = 4, 5, 2
Tirage n° 5 = 3, 3, 6
Tirage n° 6 = 3, 5, 6
Tirage n° 7 = 3, 3, 5
Tirage n° 8 = 2, 5, 3
Tirage n° 9 = 5, 4, 5
Tirage n° 10 = 2, 1, 1
Tirage n° 11 = 5, 1, 6
Tirage n° 12 = 6, 5, 3
Tirage n° 13 = 4, 2, 1
Tirage n° 14 = 6, 4, 4
Tirage n° 15 = 6, 6, 6
Tirage n° 16 = 1, 4, 3
Tirage n° 17 = 2, 5, 4
Tirage n° 18 = 3, 6, 1
Tirage n° 19 = 4, 6, 5
Tirage n° 20 = 6, 5, 1
Tirage n° 21 = 6, 6, 1
Tirage n° 22 = 2, 6, 2
Tirage n° 23 = 4, 3, 4
Tirage n° 24 = 5, 4, 3
Tirage n° 25 = 3, 1, 2
Tirage n° 26 = 4, 1, 2
Tirage n° 27 = 4, 1, 1
Tirage n° 28 = 4, 3, 1
Tirage n° 29 = 1, 5, 5
Tirage n° 30 = 2, 6, 5
Tirage n° 31 = 1, 3, 4
Tirage n° 32 = 2, 3, 2
Tirage n° 33 = 5, 1, 5
Tirage n° 34 = 4, 6, 6
Tirage n° 35 = 4, 6, 2
Tirage n° 36 = 4, 4, 1
Tirage n° 37 = 1, 5, 5
Tirage n° 38 = 3, 2, 5
Tirage n° 39 = 2, 2, 1
Tirage n° 40 = 5, 6, 1
Tirage n° 41 = 4, 2, 3
Tirage n° 42 = 3, 3, 6
Tirage n° 43 = 3, 3, 2
Tirage n° 44 = 5, 4, 5
Tirage n° 45 = 1, 1, 5
Tirage n° 46 = 1, 1, 6
Tirage n° 47 = 3, 4, 6
Tirage n° 48 = 1, 6, 3
Tirage n° 49 = 1, 4, 2
Tirage n° 50 = 6, 4, 2
Tirage n° 51 = 6, 5, 1
Tirage n° 52 = 3, 1, 5
Tirage n° 53 = 3, 1, 6
Tirage n° 54 = 2, 2, 1
Tirage n° 55 = 1, 4, 1
Tirage n° 56 = 6, 2, 1
Tirage n° 57 = 2, 1, 2
Tirage n° 58 = 6, 2, 6
Tirage n° 59 = 6, 1, 3
Tirage n° 60 = 2, 3, 3
Tirage n° 61 = 5, 2, 5
Tirage n° 62 = 1, 6, 4
Tirage n° 63 = 2, 6, 1
Tirage n° 64 = 2, 3, 5
Tirage n° 65 = 1, 1, 3
Tirage n° 66 = 6, 1, 3
Tirage n° 67 = 4, 3, 5
Tirage n° 68 = 2, 5, 6
Tirage n° 69 = 3, 5, 2
Tirage n° 70 = 5, 5, 5
Tirage n° 71 = 4, 4, 1
Tirage n° 72 = 1, 4, 3
Tirage n° 73 = 2, 4, 2
Tirage n° 74 = 1, 3, 1
Tirage n° 75 = 4, 6, 1
Tirage n° 76 = 2, 1, 5
Tirage n° 77 = 6, 3, 1
Tirage n° 78 = 4, 2, 3
Tirage n° 79 = 3, 5, 4
Tirage n° 80 = 2, 2, 4
Tirage n° 81 = 6, 4, 6
Tirage n° 82 = 5, 6, 2
Tirage n° 83 = 5, 4, 2
Tirage n° 84 = 5, 5, 4
Tirage n° 85 = 2, 2, 5
Tirage n° 86 = 5, 2, 2
Tirage n° 87 = 4, 6, 5
Tirage n° 88 = 2, 4, 5
Tirage n° 89 = 2, 2, 6
Tirage n° 90 = 6, 6, 4
Tirage n° 91 = 4, 4, 6
Tirage n° 92 = 4, 6, 4
Tirage n° 93 = 3, 2, 6
Tirage n° 94 = 2, 4, 1
Tirage n° 95 = 3, 1, 2
Tirage n° 96 = 3, 6, 3
Tirage n° 97 = 6, 3, 1
Tirage n° 98 = 3, 2, 5
Tirage n° 99 = 4, 1, 1
Tirage n° 100 = 4, 5, 3

Re: Générateur de dés...

Publié : sam. 23/sept./2023 1:01
par Shadow
Salut, j'ai constaté sur un lancer de 10 000 fois 3 dés un maximum de 21 fois ou un numéro n'est pas sortie ce qui est énorme.
J'ai modifié le code pour le rendre encore plus aléatoire, c'est marrant, je sais pas si ça change grand chose mais au moins là c'est super aléatoire :lol:
J'ai aussi fais des test avec de vraie dés (3 dés), j'ai dû faire environ 300 lancer à la louche et est constaté un maximum de 10 fois ou un numéro n'est pas sortie, mais 300 lancer c'est sur que c'est très peu.

Code : Tout sélectionner

NewList ListeNombreAleatoire.s()

For I = 1 To 10000
  AddElement(ListeNombreAleatoire.s())
  
  For N = 1 To 100
    ListeNombreAleatoire.s() + Str(Random(6, 1))
  Next
  
Next

Global NewList Liste1.i()
Global NewList Liste2.i()
Global NewList Liste3.i()
Global NewList Liste4.i()
Global NewList Liste5.i()
Global NewList Liste6.i()
Global NewList ListeNombres.s()

Procedure EnregistreListe(Nombre.i, Boucle.i)
  
  Select Nombre.i
      
    Case 1
      AddElement(Liste1.s())
      Liste1.i() = Boucle.i
      
    Case 2
      AddElement(Liste2.s())
      Liste2.i() = Boucle.i
      
    Case 3
      AddElement(Liste3.s())
      Liste3.i() = Boucle.i
      
    Case 4
      AddElement(Liste4.s())
      Liste4.i() = Boucle.i
      
    Case 5
      AddElement(Liste5.s())
      Liste5.i() = Boucle.i
      
    Case 6
      AddElement(Liste6.s())
      Liste6.i() = Boucle.i
      
  EndSelect
  
EndProcedure

For I = 1 To 1000
  
  SelectElement(ListeNombreAleatoire.s(), Random(9999))
  NombreAleatoire1.i = Val(Mid(ListeNombreAleatoire.s(), Random(100, 1), 1))
  
  SelectElement(ListeNombreAleatoire.s(), Random(9999))
  NombreAleatoire2.i = Val(Mid(ListeNombreAleatoire.s(), Random(100, 1), 1))
  
  SelectElement(ListeNombreAleatoire.s(), Random(9999))
  NombreAleatoire3.i = Val(Mid(ListeNombreAleatoire.s(), Random(100, 1), 1))
  
  EnregistreListe(NombreAleatoire1.i, I)
  EnregistreListe(NombreAleatoire2.i, I)
  EnregistreListe(NombreAleatoire3.i, I)
  
  AddElement(ListeNombres.s())
  ListeNombres.s() = Str(NombreAleatoire1.i) + ", " + Str(NombreAleatoire2.i) + ", " + Str(NombreAleatoire3.i)
  
Next

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste1.i()
  
  Elements.s + Str(Liste1.i()) + ", "
  
  If Liste1.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste1.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste1.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste1.i()
  
Next

Debug "Nombre 1: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste1.i()))
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste2.i()
  
  Elements.s + Str(Liste2.i()) + ", "
  
  If Liste2.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste2.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste2.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste2.i()
  
Next

Debug "Nombre 2: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste2.i()))
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste3.i()
  
  Elements.s + Str(Liste3.i()) + ", "
  
  If Liste3.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste3.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste3.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste3.i()
  
Next

Debug "Nombre 3: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste3.i()))
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste4.i()
  
  Elements.s + Str(Liste4.i()) + ", "
  
  If Liste4.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste4.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste4.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste4.i()
  
Next

Debug "Nombre 4: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste4.i()))
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste5.i()
  
  Elements.s + Str(Liste5.i()) + ", "
  
  If Liste5.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste5.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste5.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste5.i()
  
Next

Debug "Nombre 5: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste5.i()))
Elements.s = ""

ElementsPrecedent.i = 0
TourMaximumLouper.i = 0

ForEach Liste6.i()
  
  Elements.s + Str(Liste6.i()) + ", "
  
  If Liste6.i() - ElementsPrecedent.i > TourMaximumLouper.i
    TourMaximumLouper.i = Liste6.i() - ElementsPrecedent.i
    SauvegardeTourMaximumLouper.s = Str(ElementsPrecedent.i + 1) + " à " + Str(Liste6.i() - 1)
  EndIf
  
  ElementsPrecedent.i = Liste6.i()
  
Next

Debug "Nombre 6: " + Elements.s + "Tour Louper maximum = " + Str(TourMaximumLouper.i - 1) + " - (" + SauvegardeTourMaximumLouper.s + "), Totale de sortie: " + Str(ListSize(Liste6.i()))
Elements.s = ""

Debug ""
Debug ""

ForEach ListeNombres.s()
  Tirage.i + 1
  Debug "Tirage n° " + Str(Tirage.i) + " = " + ListeNombres.s()
Next

Re: Générateur de dés...

Publié : sam. 20/janv./2024 23:10
par Shadow
Salut Azek,

Te connais pas, nouveau ? > Bienvenu ! :D
De rien pour le code.

En faite faudrait réaliser un lisseur qui ferais en sorte que il n'y est pas de telle chose aussi aberrent qui n'existe pas en réalité !
Mais du coup ça n'arrangerais pas tous ces personne qui justement utilise se système tout à fais standard sans tricherie pour justement
te plumer, casino entre autres et tous ces jeu du style !

Dans la réalité, c'est rare je pense de faire par exemple 10, 12 lancer de 3 dés qui ne face jamais un seul numéro, tu ne vois ce genre
de chose que avec les générateur de nombre aléatoire qui eux fonctionne sur une moyenne de sortie !

Tu peu le savoir, si par exemple tu as beaucoup de 1 qui sorte, tu sais qu'au final il va en avoir moins par la suite car la moyenne va agir.
Un lisseur ferais en sorte que les nombre sorte de façon plus ou moins uniformément, pas trop de si, pas trop de sa etc...
Mais du coup ça n'arrangerais pas certaine personne qui les utilise comme indiqué plus haut.

Re: Générateur de dés...

Publié : lun. 22/janv./2024 4:14
par Demivec
Si vous pensez que ce n'est pas aléatoire ou que vous pensez que c'est prévisible, alors prédisez ce que cela fera et voyez si vous avez raison. Je ne parierais pas trop cependant, sinon vous pourriez perdre la ferme :wink: . Si vous n'êtes pas en mesure de le prédire, il semblerait que ce soit aléatoire.

Re: Générateur de dés...

Publié : lun. 22/janv./2024 19:06
par Shadow
Demivec, en faisant des statistiques, on peu prédire en extrapolant à partir des moyenne des nombres, exemple hypothétique:

Sortie de (Nombre de lancer de dés = 25):

1: 25%
2: 33%
3: 8%
4: 12%
5: 17%
6: 3%

Alors tu sais que par la suite il sortira (dans l'ordre) avec certitude moins de 2 et de 1 et donc plus de 6 et de 3, possiblement un peu plus de 4 et un petit peu moins de 5.

Car tous ça va tendre à s'équilibrer pour arriver vers les 16.66% par nombres (A force de tirage nombreux), car 100% / 6 = 16,666666666666666666666666666667

Donc non, je ne peu pas prédire le prochain nombre certes, mais je peu prédire se qui à le plus de chance de tombé, donc si, quelque par !

Re: Générateur de dés...

Publié : mar. 23/janv./2024 12:27
par Ar-S
@shadow Pas si tu changes le seed avant chaque lancé, et c'est ce qu'il faut faire.

Re: Générateur de dés...

Publié : ven. 26/janv./2024 16:45
par Shadow
Ar-S a écrit : mar. 23/janv./2024 12:27 @shadow Pas si tu changes le seed avant chaque lancé, et c'est ce qu'il faut faire.
Ah ? :|
Intéressant ça, jférais des test tien pour voir, merci.

Re: Générateur de dés...

Publié : dim. 18/août/2024 6:23
par Naheulf
J'ai envie de dire que ça n'as rien de surprenant.

La probabilité de ne pas obtenir un chiffre en particulier sur un lancé est de 5/6
La probabilité que ça arrive 45 fois d'affilé sur une série de 45 lancés est de (5/6)^45 ~= 0.02734% donc pas énorme
MAIS ça aurait pu arriver pour n'importe quel chiffre donc x6 -> 0.16406%
La probabilité de ne PAS obtenir une telle série est donc de 1-p = 99,8359%

À chaque fois que tu lances ton programme tu fait 100 lancés de 3 dés (soit 300 lancés de dés) en supposant tu tu ait lancé ton programme 10 fois ça fait un total de 3000 lancés de dés. Sur cette looongue série de lancées, la "petite" série de 45 lancés peut être positionné à 3000+1-45 = 2956 emplacements différents. La probabilité de ne PAS obtenir cette série est donc de 99,8359%^2956 = 0.78%

Au final la probabilité d'obtenir une telle série sur un tel nombre de lancés est donc de ... 99,22%. Est-ce donc si surprenant de l'avoir eu ?

Re: Générateur de dés...

Publié : lun. 12/mai/2025 14:39
par MLD
@ Shadow
Bonjour
Si tu arrive a faire des prédictions de sortie de chiffres fiable ! Le loto est bientôt dans ta poche :D :roll :oops: :mrgreen:
Sérieusement je me suis amuser a faire des stats sur la sortie des numéros de loto même avec des systèmes réducteur. C'est pratiquement impossible de prédire des sorties de chiffres.
Idem pour le tiercé ou le quinté. Dans ma vie professionnel j'ai eu ,il y a bien longtemps l'occasion de discuter avec les polytechniciens de la société Carrus qui on mis au point l'informatique des courses de chevaux, les calcul sont fait pour que la probalité de gagner soit la plus faible possible.
Mais dans les cas les plus favorables et en y mettant beaucoup d'argent le prélèvement du PMU et de l'état fait que tu soit rendement zéro.
Pour ceux qui gagne c'est du pur hasard imprévisible.
Pour le reste effectivement il faut changer le seed a chaque tour.

Re: Générateur de dés...

Publié : lun. 12/mai/2025 19:08
par Guillot
t'as 5/6 chance de pas faire de 6 à un tirage
donc pow(5/6,15)=6% de pas faire de 6 dans 15 tirage successif
6%, c'est pas si improbable !

Re: Générateur de dés...

Publié : jeu. 15/mai/2025 19:24
par Shadow
MLD, salut,

̶L̶e̶ ̶l̶o̶t̶o̶ ̶c̶'̶e̶s̶t̶ ̶t̶r̶u̶q̶u̶é̶,̶ ̶o̶n̶ ̶m̶'̶a̶ ̶d̶i̶t̶ ̶u̶n̶e̶ ̶f̶o̶i̶s̶ ̶(̶U̶n̶ ̶t̶a̶x̶i̶)̶,̶ ̶m̶a̶i̶s̶ ̶j̶e̶ ̶n̶e̶ ̶p̶e̶u̶ ̶e̶n̶ ̶ê̶t̶r̶e̶ ̶c̶e̶r̶t̶a̶i̶n̶,̶ ̶l̶e̶ ̶m̶e̶c̶ ̶d̶i̶s̶a̶i̶t̶ ̶q̶u̶e̶,̶ ̶e̶n̶ ̶f̶a̶i̶t̶,̶
̶l̶'̶o̶r̶d̶i̶n̶a̶t̶e̶u̶r̶ ̶v̶a̶ ̶s̶o̶r̶t̶i̶r̶ ̶d̶e̶s̶ ̶n̶o̶m̶b̶r̶e̶s̶ ̶q̶u̶i̶ ̶r̶e̶s̶s̶o̶r̶t̶e̶n̶t̶ ̶l̶e̶ ̶m̶o̶i̶n̶s̶ ̶p̶o̶s̶s̶i̶b̶l̶e̶ ̶d̶e̶ ̶t̶o̶u̶s̶ ̶l̶e̶s̶ ̶t̶i̶r̶a̶g̶e̶s̶ ̶(̶f̶e̶u̶i̶l̶l̶e̶ ̶d̶e̶ ̶n̶u̶m̶é̶r̶o̶ ̶d̶e̶s̶ ̶j̶o̶u̶e̶u̶r̶s̶)̶.̶
̶
̶É̶v̶i̶d̶e̶m̶m̶e̶n̶t̶,̶ ̶y̶a̶ ̶u̶n̶e̶ ̶m̶a̶r̶g̶e̶ ̶p̶o̶u̶r̶ ̶q̶u̶e̶ ̶l̶e̶s̶ ̶g̶e̶n̶s̶ ̶g̶a̶g̶n̶e̶n̶t̶ ̶q̶u̶a̶n̶d̶ ̶m̶ê̶m̶e̶ ̶u̶n̶ ̶p̶e̶u̶,̶ ̶s̶i̶n̶o̶n̶ ̶ç̶a̶ ̶s̶e̶ ̶v̶e̶r̶r̶a̶i̶t̶ ̶t̶r̶o̶p̶.̶

@Guillot, salut,

Oui mais je ne sais pas si cette méthode de calcule est fiable pour ça !

---edit Ar-S--- On reste dans le code

Re: Générateur de dés...

Publié : jeu. 15/mai/2025 20:47
par SPH
L'histoire n'est pas tout à fait celle que tu racontes. :idea:
-
En fait, les gens qui réfléchissent ont plus de chance de gagner gros. Pourquoi ?
Parce qu'elles savent que les joueurs ont des numéros fétiches comme une date de naissance, un numéro porte bonheur ou de malheur et d'autres numéros particuliers.
Le loto a une cagnotte qui sera PARTAGé à tous les joueurs qui trouveront tous les numéros.
Alors, pour ne pas faire parti de ces joueurs touchant moins, ces gens "intelligentes" jouent les numéros les moins utilisés.
Ainsi, s'ils gagnent, elles savent qu'elles seront beaucoup moins à se partager le pactole...

Pas si bête, hein ? :mrgreen: