Besoin d'un technicien VBA pour tester méthodes casino

Fermé
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017 - Modifié le 6 sept. 2017 à 16:16
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 13 sept. 2017 à 14:10
Bonjour à tous,

Mes compétences en VBA étant plus que limitées, j'ai besoin d'un programmeur en VB pour faire quelques tests de méthodes.

Si quelqu'un est intéressé ce serait top

Je veux connaitre le nombre de fois qu'un numéro sort dans les prochains x prochains coups si celui ci est déjà sorti 2 fois dans les 13 derniers

ex:

1-10-23-12-5-10-...
le 10 est sorti 2 fois
Va t-il sortir de nouveau avant le 71 ème coup
En gros, combien de fois une "doublette" devient une "triplette"
et combien de fois cela n’apparaît pas

a+
A voir également:

13 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
8 sept. 2017 à 20:32
Bon, avec les réponses imbriquées, on ne comprends plus rien à ce thread...

Alors @ majival, je ne comprends rien de rien aux résultats que tu obtiens....
Je ne sais pas ce que tu as fait, mais tu as du "merder" quelque part.
De plus, je soupçonne fortement Microsoft d'avoir développer leur fonction de feuille Alea de la même manière que Rnd+Randomize, avec rigoureusement le même algo. Sinon, c'est que vraiment ils ont du temps à perdre. Tu ne penses pas?

@Dal : théoriquement, une roulette "pourrait" tirer 10 000 fois, d'affilée, le numéro 0.
On est là dans l'aléatoire.
Comme elle pourrait aussi tirer 200 000 000 de tirages sans que le zéro y figure...
Seulement, si on parle ici de roulette "électronique", "informatique", basée sur un algorithme, alors là, la triche est réalisable.... Dans l'imaginaire!
Exactement le sujet que tu évoques dans le lien fournit plus haut avec Fiddy...
Mais bon, là, on s'attaque à du costaud. Il est toujours possible d'étudier les "réponses" numériques d'une roulette "électronique", mais de là à "prédire" un résultat...

1
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié le 6 sept. 2017 à 19:23
Bonjour,

J'ai modifié ton message car pas d'aide en MP.

Ce code que j'ai réalisé, devrait t'aider.
Tu peux régler les constantes comme tu veux...
La constante FLAG sert à chercher les "fourchettes" dans lesquelles on trouve des doublons.
Si on trouve, par exemple, dans les 13 premiers tirages, ceci :
1, 16, 12, 0, 11, 19, 0, 7, 8, 9, 10, 14, 35
on trouve un doublon de zéro dans les fourchettes :
1 à 13
2 à 14
3 à 15
4 à 16
Donc, si tu ne veux qu'une seule fourchette sur ces 4, règle FLAG à True. Pour les 4 fourchettes règle FLAG à False.
Attention, si FLAG est False ne va pas au delà de 100 000 tirages.
Par contre, si True, tu peux allègrement dépasser le million...

Pour les autres constantes, j'ai repris tes données, donc ça devrait le faire.

Option Explicit

Private Type Fourchette
    mini As Long
    Maxi As Long
End Type

'------ CONSTANTES A ADAPTER
Private Const MINIMUM As Long = 0           'premier nombre
Private Const MAXIMUM As Long = 36          'dernier nombre
Private Const NB_1 As Long = 13             'premier "écart" = intervalle ou trouver les doublons
Private Const NB_2 As Long = 71             'second "écart" = intervalle complément de NB_1 pour trouver triplon
Private Const COMPTEUR_1 As Long = 2        'premier compteur si doublon 2, si triplon 3 etc
Private Const COMPTEUR_2 As Long = 4        'second compteur si triplon 3, quadri 4 etc
Private Const NB_TIRAGES As Long = 10000    'Nombre de tirages aléatoires
Private Const FLAG As Boolean = True        'Limite les "fourchettes" ==> pour toutes mettre false
Private Const RANGE_RESTIT As String = "A1" 'l'adresse de la première cellule pour la restitution
'------------------------

Public Sub Liste_Aleas()
Dim i As Long, TbNbAleas() As Long, Resultats() As Variant
Dim T As Single

    T = Timer
    ReDim TbNbAleas(1 To NB_TIRAGES, 1 To 1)
    For i = 1 To NB_TIRAGES
        TbNbAleas(i, 1) = NbAlea(MINIMUM, MAXIMUM)
    Next
    Resultats = Recherche_Triplons_Particuliers(TbNbAleas)
    'restitution
    Range(RANGE_RESTIT) = "Numéro"
    Range(RANGE_RESTIT).Offset(0, 1) = "Fourchettes"
    Range(RANGE_RESTIT).Offset(0, 2) = "Triplons"
    Range(RANGE_RESTIT).Offset(1, 0).Resize(UBound(Resultats, 1), UBound(Resultats, 2)) = Resultats
    MsgBox "Fin en : " & Timer - T & " Secondes"
End Sub

Private Function NbAlea(min As Long, Max As Long) As Long
    Randomize Timer
    NbAlea = Int((Max - min + 1) * Rnd + min)
End Function

Private Function Recherche_Triplons_Particuliers(TbNbAlea() As Long) As Variant()
Dim TbFourchette() As Fourchette, NumeroAchercher As Long, temp() As Variant
Dim i As Long

    ReDim temp(1 To 37, 1 To 3)
    For NumeroAchercher = MINIMUM To MAXIMUM
        temp(NumeroAchercher + 1, 1) = NumeroAchercher
        TbFourchette = Est_Sorti_Deux_Fois(TbNbAlea, NumeroAchercher, NB_1, FLAG)
        On Error Resume Next
        temp(NumeroAchercher + 1, 2) = UBound(TbFourchette)
        If Err <> 0 Then
            temp(NumeroAchercher + 1, 2) = 0
            temp(NumeroAchercher + 1, 3) = 0
        Else
            temp(NumeroAchercher + 1, 3) = Nb_Triplons(TbNbAlea, NumeroAchercher, TbFourchette, NB_2)
        End If
        On Error GoTo -1
    Next
    Recherche_Triplons_Particuliers = temp
End Function

Private Function Est_Sorti_Deux_Fois(Tb() As Long, Nb As Long, Ecart As Long, Unique As Boolean) As Fourchette()
Dim i As Long, j As Long, cptDouble As Long, CptFourch As Long, F() As Fourchette, Stp As Long
    
    Stp = IIf(Unique, Ecart, 1)
    For i = LBound(Tb, 1) To UBound(Tb, 1) Step Stp
        For j = i To i + Ecart - 1
            If j > UBound(Tb, 1) Then Exit For
            If Tb(j, 1) = Nb Then cptDouble = cptDouble + 1
            If cptDouble = COMPTEUR_1 Then
                ReDim Preserve F(CptFourch)
                F(CptFourch).mini = i
                F(CptFourch).Maxi = i + Ecart - 1
                CptFourch = CptFourch + 1
                Exit For
            End If
        Next j
        cptDouble = 0
    Next i
    Est_Sorti_Deux_Fois = F
End Function

Private Function Nb_Triplons(Tb() As Long, Nb As Long, TbFourc() As Fourchette, Ecart As Long) As Long
Dim i As Long, j As Long, cpt_Triple As Long, res As Long

    cpt_Triple = 0
    For i = LBound(TbFourc) To UBound(TbFourc)
        For j = TbFourc(i).Maxi To TbFourc(i).Maxi + Ecart - 1
            If j > UBound(Tb, 1) Then Exit For
            If Tb(j, 1) = Nb Then cpt_Triple = cpt_Triple + 1
            If cpt_Triple = COMPTEUR_2 - COMPTEUR_1 Then res = res + 1: Exit For
        Next j
    Next i
    Nb_Triplons = res
End Function


EDIT : il y a une erreur que je viendrais rectifier demain.
EDIT 2 : Erreur corrigée.
EDIT 3 : ajout des constantes de choix "doublons" "triplons" "quadri" etc...
Cordialement,
Franck
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
6 sept. 2017 à 16:51
ok je comprends super!

si je comprends bien le tableau

pour le numéro 1 par exemple j'ai fourchette 29 et triplon 34
ça veut dire que le numéro 1 qui est sorti 29 fois dans un intervalle de 13 mais seulement 34 fois celà s'est accompagné d'une troisième sorti dans un intervalle de 71 ?

C'est bien çà?

sur le code à quel niveau je peux modifier de doublon à triplon, de triplon à quatri(je sais pas comment on dit) etc etc?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
6 sept. 2017 à 16:56
On verra tout ça demain si tu veux bien.
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
6 sept. 2017 à 17:00
Bien sur pas de problèmes

Bonne soirée :)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
6 sept. 2017 à 19:20
C'est bon, j'ai eu le temps...

pour le numéro 1 par exemple j'ai fourchette 29 et triplon 34
ça veut dire que le numéro 1 qui est sorti 29 fois dans un intervalle de 13 mais seulement 34 fois celà s'est accompagné d'une troisième sorti dans un intervalle de 71 ?

Oui, c'est cela... Enfin je crois...

J'ai ajouté deux constantes COMPTEUR_1 et COMPTEUR_2 qui correspondent au choix de doublons, triplons etc...
COMPTEUR_1 = 1er choix
COMPTEUR_2... Second choix.

Pour ne pas être redondant, j'ai corrigé le code plus haut...

Dis moi si ça te convient...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
6 sept. 2017 à 20:20
hello

Bah là le résultat de la macro n'est pas bon je pense
il me donne 36 numéros avec doublon et triplon pour chaque numéro
mais je pense qu'il y a une erreur.
Les chiffres que j'ai sont:
Numéro Fourchettes Triplons
0 47 14
1 17 1
2 29 2
3 2 1
4 38 4
5 0 0
6 56 9
7 41 7
8 20 7
9 62 8
10 26 2
11 74 2
12 68 1
13 53 2
14 0 0
15 89 13
16 59 13
17 62 4
18 47 5
19 53 14
20 23 4
21 29 6
22 74 3
23 41 2
24 38 1
25 65 8
26 17 3
27 39 9
28 8 3
29 69 4
30 2 1
31 50 2
32 21 3
33 11 1
34 62 11
35 8 3
36 5 2

Ce résultat n'est pas possible car la quantité de doublons qui se transforment en triplon est trop faible.
Idem d'après les résultats le 5 et le 14 n'ont pas eu de doublon. Sur 10 000 tirages, c'est pas possible non plus.
La première macro me paraissait mieux dans le sens ou il y avait la liste de tous les numéros générés aléatoirement et pour chaque numéro le nombre de doublon dans un intervalle donné et la quantité de doublons qui vont se transformer en triplon dans un nouvelle intervalle donné.

çà c'était top.

Après ce que je voulais, c'est si on peut rajouter des constantes. Pour modifier les intervalles de références (la fourchette de base) et l'intervalle qui suit

ex: on avait fourchette 13 pour doublon et ensuite écart de 71 pour triplon
l'idée était de modifier cette fourchette de 13 et l'intervalle qui suit la sortie du numéro pour la deuxième fois de 71. Par ex on met 10 et 20 etc

Puis modifier doublon vers triplon par triplon vers quat ou quatr vers cinq...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié le 6 sept. 2017 à 20:44
là, je penses que tu te fourvoies.

Les résultats sont ceux attendus.
mais, par acquis de conscience, je vais demander à un ami spécialiste de contrôler.



Mais, à mon avis, c'est l'idée de base, l'algorithme, qui n'est pas correct.

a demain,
bonne soirée

EDIT :
Il te faut bien comprendre et garder en tête ce qu'est REELLEMENT le hasard, l'aléatoire.
Par le plus grand des hasards, tu pourrais obtenir 1000 tirages rigoureusement identiques composés uniquement de 32...
Ou alors complètement autre chose...
Donc, ta phrase : d'après les résultats le 5 et le 14 n'ont pas eu de doublon. Sur 10 000 tirages, c'est pas possible non plus. ne correspond en rien à la réalité du hasard.
Moi j'affirme EXACTEMENT le contraire.

Je penses que tu veux ABSOLUMENT conforter ton algo, et que, de par le fait, tu zappes complètement ce qu'est réellement l'aléatoire, le hasard.
Le hasard, tu ne pourras jamais le contrôler quelle que soit ton envie de gagner au casino, dusses tu y intégrer la théorie de la "loi de grands nombres"...

0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
6 sept. 2017 à 20:45
peut-être en effet.
Si les résultats sont bien confirmés, c'est que l'idée de base est pas bonne et dans ce cas je serai fixé

bonne soirée à toi aussi

a demain
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
6 sept. 2017 à 20:49
Je te confirme ça demain ou d'ici quelques jours.
Je vais faire appel à un spécialiste et t'indiquer le lien du forum en question.
bonne soirée

--
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié le 7 sept. 2017 à 09:06
Bonjour,

J'ai décelé 2 erreurs (minimes) dans mon code.
J'ai donc corrigé...

Donc : MEA CULPA

Pour la peine, j'ai ajouté une ou deux fonctions à ce code.
Tu disposes donc maintenant de deux procédures principales :
  • Tirage_Et_Resultats
  • Verifions


Verifions te demande de choisir un nombre, refait un nouveau tirage, et affiche les calculs (positions dans la liste, fourchettes, etc...) relatifs au nombre choisi...

Ensuite, tu demandais :
Après ce que je voulais, c'est si on peut rajouter des constantes. Pour modifier les intervalles de références (la fourchette de base) et l'intervalle qui suit

ex: on avait fourchette 13 pour doublon et ensuite écart de 71 pour triplon
l'idée était de modifier cette fourchette de 13 et l'intervalle qui suit la sortie du numéro pour la deuxième fois de 71. Par ex on met 10 et 20 etc

C'est le cas depuis le début.
cf constantes :
NB_1 As Long = 13
NB_2 As Long = 71

Pour le choix doublon, triplon etc, voir les constantes :
COMPTEUR_1 As Long = 2
COMPTEUR_2 As Long = 3

Regarde bien ces constantes, tu pourras tout régler depuis elles...

Option Explicit

Private V As Boolean

Private Type Fourchette
    mini As Long
    Maxi As Long
End Type

'------ CONSTANTES A ADAPTER
Private Const MINIMUM As Long = 0           'premier nombre
Private Const MAXIMUM As Long = 36          'dernier nombre
Private Const NB_1 As Long = 13             'premier "écart" = intervalle ou trouver les doublons
Private Const NB_2 As Long = 71             'second "écart" = intervalle complément de NB_1 pour trouver triplon
Private Const COMPTEUR_1 As Long = 2        'premier compteur si doublon 2, si triplon 3 etc
Private Const COMPTEUR_2 As Long = 3        'second compteur si triplon 3, quadri 4 etc
Private Const NB_TIRAGES As Long = 100000   'Nombre de tirages aléatoires
Private Const FLAG As Boolean = True        'Limite les "fourchettes" ==> pour toutes mettre false
Private Const RANGE_RESTIT As String = "A1" 'l'adresse de la première cellule pour la restitution
'------------------------

Public Sub Tirage_Et_Resultats()
Dim TbNbAleas() As Long, Resultats() As Long
Dim T As Single

    T = Timer
    TbNbAleas = Liste_Aleas
    Resultats = Recherche_Triplons_Particuliers(TbNbAleas)
    'restitution
    Range(RANGE_RESTIT) = "Numéro"
    Range(RANGE_RESTIT).Offset(0, 1) = "Fourchettes"
    Range(RANGE_RESTIT).Offset(0, 2) = "Triplons"
    Range(RANGE_RESTIT).Offset(1, 0).Resize(UBound(Resultats, 1), UBound(Resultats, 2)) = Resultats
    MsgBox "Fin en : " & Timer - T & " Secondes"
End Sub

Public Sub Verifions()
Dim i As Long, TbNbAleas() As Long, F() As Fourchette, Nb As Long, cpt As Long

    ReDim TbNbAleas(1 To NB_TIRAGES, 1 To 1)
    cpt = 2: V = True
    Nb = MyInputBox
    For i = 1 To NB_TIRAGES
        TbNbAleas(i, 1) = NbAlea(MINIMUM, MAXIMUM)
        Cells(i + 1, 1) = TbNbAleas(i, 1)
        If Cells(i + 1, 1) = Nb Then Cells(cpt, 2) = i: cpt = cpt + 1
    Next
    F = Est_Sorti_Deux_Fois(TbNbAleas, Nb, NB_1, True)
    For i = LBound(F) To UBound(F)
        Cells(i + 2, 3) = F(i).mini & " <=> " & F(i).Maxi
    Next
    Cells(2, 5) = Nb_Triplons(TbNbAleas, Nb, F, NB_2)
    Range("A1") = "Liste"
    Range("B1") = "Positions du " & Nb
    Range("C1") = "Adresses fourchettes"
    Range("D1") = "Positions triplons"
    Range("E1") = "Nb Triplons"
    V = False
End Sub

Private Function Liste_Aleas() As Long()
Dim temp() As Long, i As Long

    ReDim temp(1 To NB_TIRAGES, 1 To 1)
    For i = 1 To NB_TIRAGES
        temp(i, 1) = NbAlea(MINIMUM, MAXIMUM)
    Next
    Liste_Aleas = temp
End Function

Private Function NbAlea(min As Long, Max As Long) As Long
    Randomize Timer
    NbAlea = Int((Max - min + 1) * Rnd + min)
End Function

Private Function Recherche_Triplons_Particuliers(TbNbAlea() As Long) As Long()
Dim TbFourchette() As Fourchette, NumeroAchercher As Long, temp() As Long
Dim i As Long

    ReDim temp(1 To 37, 1 To 3)
    For NumeroAchercher = MINIMUM To MAXIMUM
        temp(NumeroAchercher + 1, 1) = NumeroAchercher
        TbFourchette = Est_Sorti_Deux_Fois(TbNbAlea, NumeroAchercher, NB_1, FLAG)
        On Error Resume Next
        temp(NumeroAchercher + 1, 2) = UBound(TbFourchette) + 1
        If Err <> 0 Then
            temp(NumeroAchercher + 1, 2) = 0
            temp(NumeroAchercher + 1, 3) = 0
        Else
            temp(NumeroAchercher + 1, 3) = Nb_Triplons(TbNbAlea, NumeroAchercher, TbFourchette, NB_2)
        End If
        Erase TbFourchette
        On Error GoTo -1
    Next
    Recherche_Triplons_Particuliers = temp
End Function

Private Function Est_Sorti_Deux_Fois(Tb() As Long, Nb As Long, Ecart As Long, Unique As Boolean) As Fourchette()
Dim i As Long, j As Long, cptDouble As Long, CptFourch As Long, F() As Fourchette, Stp As Long
    
    Stp = IIf(Unique, Ecart, 1)
    For i = LBound(Tb, 1) To UBound(Tb, 1) Step Stp
        For j = i To i + Ecart - 1
            If j > UBound(Tb, 1) Then Exit For
            If Tb(j, 1) = Nb Then cptDouble = cptDouble + 1
            If cptDouble = COMPTEUR_1 Then
                ReDim Preserve F(CptFourch)
                F(CptFourch).mini = i
                F(CptFourch).Maxi = i + Ecart - 1
                CptFourch = CptFourch + 1
                Exit For
            End If
        Next j
        cptDouble = 0
    Next i
    Est_Sorti_Deux_Fois = F
End Function

Private Function Nb_Triplons(Tb() As Long, Nb As Long, TbFourc() As Fourchette, Ecart As Long) As Long
Dim i As Long, j As Long, cpt_Triple As Long, res As Long, cpt As Long

    cpt = 2
    For i = LBound(TbFourc) To UBound(TbFourc)
        cpt_Triple = 0
        For j = TbFourc(i).Maxi + 1 To TbFourc(i).Maxi + Ecart - 1
            If j > UBound(Tb, 1) Then Exit For
            If Tb(j, 1) = Nb Then cpt_Triple = cpt_Triple + 1
            If cpt_Triple = COMPTEUR_2 - COMPTEUR_1 Then
                If V Then
                    Cells(cpt, 4) = j: cpt = cpt + 1: res = res + 1: Exit For
                Else
                    res = res + 1: Exit For
                End If
            End If
        Next j
    Next i
    Nb_Triplons = res
End Function

Private Function MyInputBox() As Long
Dim bon As Boolean, entree As String, MyArray As Variant, i As Long, Dimens As Byte, Valeur As String

   Do While Not bon
        entree = InputBox("Entrer un nombre entre 0 et 36", "Saisie")
        If StrPtr(entree) <> 0 Then
            If IsNumeric(entree) Then
                If entree >= 0 And entree <= 36 Then bon = True
            End If
        End If
    Loop
    MyInputBox = CLng(entree)
End Function


Pfiou! quel pavé!!!
Cordialement,
Franck
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
7 sept. 2017 à 16:09
je ne suis pas expert en VBA avec lequel ne n'ai développé que très rarement, mais dans ton code, "Randomize" ne devrait-il pas être appelé une seule fois, au lieu d'être dans la boucle ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
7 sept. 2017 à 16:23
Randomize a besoin d'une valeur en paramètre pour être "plus" aléatoire.
Ici, en lui passant le Timer (valeur toujours changeante), on "augmente" sensiblement l'aléatoire de cette fonction.
Au détriment d'un cadencement, je te le concède.

L'enlever de la boucle ne se ressentirai pas sur les résultats, visuellement.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 7 sept. 2017 à 16:50
Ah, tu dois le savoir mieux que moi :-)

Évidemment, tout dépend de la précision du timer ... je suppose qu'il n'est pas à la seconde près, comme en C, on va avoir des répétitions de séquences liées au fait que la boucle s'exécute dans la même seconde et que Randomize est réinitialisé avec la même valeur... ?

En termes de doc, je trouve cela, si c'est bien la bonne doc : https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/8zedbtdt(v=vs.90)?redirectedfrom=MSDN pour Randomize (qui initialiserait avec le "timer du système" selon cette doc si la graine est omise ...), mais je ne trouve pas de la doc sur "Timer" et sa précision.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
7 sept. 2017 à 18:47
Oui, c'est la bonne doc pour Randomize.

Pour le Timer, la précision, sous windows, est du centième de seconde.

Timer renvoie le nombre de secondes écoulées depuis minuit.
Exemple, à 18h43 : 67482,77 secondes...
https://docs.microsoft.com/en-us/office/vba/Language/Reference/User-Interface-Help/timer-function
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
7 sept. 2017 à 20:20
Bonsoir,
Demain, je posterai une discussion dans le forum "programmation", afin que chacun puisse s'exprimer sur la notion de hasard et comment elle peut être traitée informatiquement.
J'espère que du "beau monde" y participera.
Invitez vos potes!!
Je mettrais le lien ici dès que j'aurais écrit le sujet.
Sur ce, bonne soirée!!!
A++
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
7 sept. 2017 à 10:20
hello!

oui en effet, quel boulot!!!

j'ai testé la macro mais rien ne s'affiche après "choisir un nombre"...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
7 sept. 2017 à 10:34
Change Private Const NB_TIRAGES As Long = 100000
par 10000 par exemple...
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
7 sept. 2017 à 11:51
super!!!
merci beaucoup pour ta patience et ton travail!
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 7 sept. 2017 à 13:52
Salut majival,

Le script de pijaku est super, mais il te donne seulement une idée des récurrences possibles sur le générateur de nombres aléatoires utilisé par VBA.

Tu dois certainement avoir à l'esprit que ce n'est probablement pas celui d'un jeu de roulette électronique, que et le "pseudo-hasard" généré n'est en tout cas pas similaire au "hasard" lié à l'usage d'une roulette réelle :-)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
7 sept. 2017 à 14:47
Bonjour,

Outre les récurrences dues à l'utilisation de Randomize, il y a également un facteur à prendre en compte, le cadencement.
Ce facteur n'est pas gérable lorsque l'on travaille en boucle via l'informatique.

Il est fort possible d'intégrer une liste, une suite extraite d'un jeu réel.

Il est également possible de réaliser un autre algorithme.

Je vais tenter de faire quelque chose...
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
7 sept. 2017 à 14:13
Salut DAL,

oui tu as raison. Je me suis interrogé à ce propos.
Est-il possible de modifier le script de pijaku afin de l'adapter par exemple à une suite extraite d'un jeu réel?
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
7 sept. 2017 à 14:20
Ou par exemple sur une autre suite aléatoire générée par un autre algorithme?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié le 10 sept. 2017 à 09:32
Bonjour,

Pourquoi simuler (de façon imparfaite puisque c'est un générateur pseudo aléatoire) pour avoir la probabilité ?
D'autant plus qu'on aura qu'une tendance et qu'il faudrait des millions de tirages pour commencer à avoir un certain nombre de décimales justes.

Pour moi probabilité d'avoir un nombre =1/37
un doublon =1/37/37
un triplé =1/37/37/37
Celle d'obtenir un triplet après un doublon est celle d'obtenir le nombre : =1/37
Ce qui ne veut pas dire une certitude d'avoir ce nombre comme souligné précédemment.
Avec un dé la probabilité de faire 1000 tirages sans un 6 existe, même si elle est très faible.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
majival Messages postés 23 Date d'inscription mercredi 6 septembre 2017 Statut Membre Dernière intervention 5 décembre 2017
13 sept. 2017 à 13:30
salut à tous,



j'ai fait un petit fichier excel
https://www.cjoint.com/c/GInlyz4gndX

Le principe est le suivant:
Je sélectionne un numéro de la façon suivante:
sur les 37 derniers tours, je calcule le nombre de numéros rouge, de noirs, d'impair de pair, de even et pass de première douzaine, seconde et troisieme et colonne 1, 2 et 3
et je joue uniquement le numéro qui figure parmi tous ces critères.
C'est à dire que si il y plus de rouge que de noir, ce doit-être un numéro noir, impair dans colonne 1(par exemple) etc
Si aucun numéro ne correspond alors on attend.
Ce numéro doit être joué pendant 54 coups max.
L'idée est de savoir le nombre de fois ou le numéro arrive dans les 54 coups et le nombre de fois ou il n'arrive pas.

merci à tous
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
13 sept. 2017 à 14:10
Bonjour,

sans moi puisque ce que je dis ne t'intéresse absolument pas.
eric
0