Algo de calcule pour X numéros prédefinie tirer a la suite sur X tirage

bonjour a tous

j'aimerais avoir un outils de calcule qui m’aiderais a

savoir combien de fois plusieurs numéros sorte d'affilé sur exemple X Spin ( 5000 ou 10 000 spin ( tirage roulette )

exemple le : 10,3,5,7,23,22,34 ect ( je voudrais pouvoir mettre 12 numéros dans la recherche

avec un tableau pour me donner le nombre de fois ou il y a eu 1 numéros 2 numéros , 3 numéros etc jusqu’à 12 qui sont sortie a la suite. ( peut importe l'ordre )

ca peut faire exemple : le 10,3,7 ou 7,10,3 ... ca compte comme une suite de 3 numéros recherché.

un exemple je rentre les 12 numéros que je veux ds la recherche : 10,3,5,7,23,22,34,2,1,12,13,21

et avoir un tableau qui me donne les résultats.

1 numéros = 36 fois 2 numéros : 56 fois ( exemple le 7 et le 12 ) 3 numéros : 120 fois ( exemple le 34 , 2 , 1 ) etc etc jusque 12 numéros ( les 12 demander )

j’espère avoir ete suffisamment clair si une personne peut me donner sont aide ça serais top :)

Merci pour vos réponses et vos propositions de fichier.

Bonjour,

Intéressant, mais je ne comprends pas la recherche pour "1 numéro d'affilée !!", qu'est-ce que cela signifie ?

Aure question, si je cherche les suites de 3, doit-on considérer aussi les chevauchements ?

exemple où je trouve 2 fois 47,57,74

74
57
47
74

Premier jet

Sub calcul()
Dim a(), b()
liste = [A1].CurrentRegion.Value
Range("E2:F12").ClearContents
debut = Now
For n = 2 To 12
    x = 0
    ReDim a(1 To n)
    ReDim b(1 To n)
    For i = 1 To UBound(liste) - n
        For j = i + 1 To UBound(liste) - n + 1
            For k = 0 To n - 1
                a(1 + k) = liste(i + k, 1)
                b(1 + k) = liste(j + k, 1)
            Next
            QuickSort a
            QuickSort b
            If Join(a, "-") = Join(b, "-") Then x = x + 1
        Next
    Next
    Range("E" & n) = x
    Range("F" & n) = Now - debut
Next
End Sub

Public Sub QuickSort(vArray As Variant, _
  Optional ByVal inLow As Long = -1, _
  Optional ByVal inHi As Long = -1)
  Dim pivot   As Variant
  Dim tmpSwap As Variant
  Dim tmpLow  As Long
  Dim tmpHi   As Long
  inLow = IIf(inLow = -1, LBound(vArray), inLow)
  inHi = IIf(inHi = -1, UBound(vArray), inHi)
  tmpLow = inLow
  tmpHi = inHi
  pivot = vArray((inLow + inHi) \ 2)
  While (tmpLow <= tmpHi)
     While (vArray(tmpLow) < pivot And tmpLow < inHi)
        tmpLow = tmpLow + 1
     Wend
     While (pivot < vArray(tmpHi) And tmpHi > inLow)
        tmpHi = tmpHi - 1
     Wend
     If (tmpLow <= tmpHi) Then
        tmpSwap = vArray(tmpLow)
        vArray(tmpLow) = vArray(tmpHi)
        vArray(tmpHi) = tmpSwap
        tmpLow = tmpLow + 1
        tmpHi = tmpHi - 1
     End If
  Wend
  If (inLow < tmpHi) Then QuickSort vArray, inLow, tmpHi
  If (tmpLow < inHi) Then QuickSort vArray, tmpLow, inHi
End Sub
8repetitions.xlsm (22.82 Ko)

Aure question, si je cherche les suites de 3, doit-on considérer aussi les chevauchements ?

exemple où je trouve 2 fois 47,57,74

74
57
47
74
bonjour , oui il doit compter les chevauchement ca serais encore mieux :) très bonne remarque j'y avais pas penser ^^

Bonjour,

Intéressant, mais je ne comprends pas la recherche pour "1 numéro d'affilée !!", qu'est-ce que cela signifie ?

oui je me suis mal expliquer le 1 numéros ne sert a rien dans le tableau effectivement :)

Voici, avec l'option avec/sans recouvrement ... et le détail des lignes concernées

Sub calcul()
Dim a(), b(), resultat()
liste = [A1].CurrentRegion.Value
raz
debut = Now
For n = 2 To 12
    x = 0
    y = IIf(Range("H1") = "sans", n - 1, 0)
    ReDim a(1 To n)
    ReDim b(1 To n)
    For i = 1 To UBound(liste) - n - y
        For j = i + 1 + y To UBound(liste) - n + 1
            For k = 0 To n - 1
                a(1 + k) = liste(i + k, 1)
                b(1 + k) = liste(j + k, 1)
            Next
            QuickSort a
            QuickSort b
            If Join(a, "-") = Join(b, "-") Then
                x = x + 1
                ReDim Preserve resultat(1 To x)
                resultat(x) = "(" & i & "-" & i + n - 1 & "," & j & "-" & j + n - 1 & ")"
            End If
        Next
    Next
    Range("E" & n) = x
    Range("F" & n) = Now - debut
    If x > 0 Then Range("G" & n).Resize(1, UBound(resultat)) = resultat
Next
End Sub
Sub raz()
Range("D1").CurrentRegion.Offset(1, 1).ClearContents
End Sub
3repetitions.xlsm (27.52 Ko)

Premier jet

Sub calcul()
Dim a(), b()
liste = [A1].CurrentRegion.Value
Range("E2:F12").ClearContents
debut = Now
For n = 2 To 12
    x = 0
    ReDim a(1 To n)
    ReDim b(1 To n)
    For i = 1 To UBound(liste) - n
        For j = i + 1 To UBound(liste) - n + 1
            For k = 0 To n - 1
                a(1 + k) = liste(i + k, 1)
                b(1 + k) = liste(j + k, 1)
            Next
            QuickSort a
            QuickSort b
            If Join(a, "-") = Join(b, "-") Then x = x + 1
        Next
    Next
    Range("E" & n) = x
    Range("F" & n) = Now - debut
Next
End Sub

Public Sub QuickSort(vArray As Variant, _
  Optional ByVal inLow As Long = -1, _
  Optional ByVal inHi As Long = -1)
  Dim pivot   As Variant
  Dim tmpSwap As Variant
  Dim tmpLow  As Long
  Dim tmpHi   As Long
  inLow = IIf(inLow = -1, LBound(vArray), inLow)
  inHi = IIf(inHi = -1, UBound(vArray), inHi)
  tmpLow = inLow
  tmpHi = inHi
  pivot = vArray((inLow + inHi) \ 2)
  While (tmpLow <= tmpHi)
     While (vArray(tmpLow) < pivot And tmpLow < inHi)
        tmpLow = tmpLow + 1
     Wend
     While (pivot < vArray(tmpHi) And tmpHi > inLow)
        tmpHi = tmpHi - 1
     Wend
     If (tmpLow <= tmpHi) Then
        tmpSwap = vArray(tmpLow)
        vArray(tmpLow) = vArray(tmpHi)
        vArray(tmpHi) = tmpSwap
        tmpLow = tmpLow + 1
        tmpHi = tmpHi - 1
     End If
  Wend
  If (inLow < tmpHi) Then QuickSort vArray, inLow, tmpHi
  If (tmpLow < inHi) Then QuickSort vArray, tmpLow, inHi
End Sub
8repetitions.xlsm (22.82 Ko)

merci pour cette premier proposition mais quand j'ouvre le fichier il bug :( je ne peut donc pas le consulter correctement

je te fait parvenir un fichier qui ressemble un peut a ce que je voudrais mais il ne fait que recherché 1 seul numéros peut-être

que tu peut regarder pour le modifier un peut car il me semble que tu a compris ce que je voulais :)

ps : j'ai oublier aussi de dire que les numéros doivent aller de 0 a 36 ^^ car sur ton fichier que je viens de réussir a ouvrir il y a des 95 , 85 , 60 etc

merci encore

5qlimax101-1.xlsm (107.01 Ko)

Où est-ce qu'il bogue ? quelle est l'instruction. Chez moi c'est ok !

Pour le numéros, tu peux faire un tirage aléatoire entre 1 et 36 (j'avais pris entre 11 et 99)

Où est-ce qu'il bogue ? quelle est l'instruction. Chez moi c'est ok !

il met beaucoup de temps a faire le calcule presque 10 minutes chez moi :( alors que j'ai un mac encore correct lol

ou se trouve la ligne de code pour modifier le tirage aleatoires ? et si je veux rajouter des tirage aussi ?

merci beaucoup

Où est-ce qu'il bogue ? quelle est l'instruction. Chez moi c'est ok !

il met beaucoup de temps a faire le calcule presque 10 minutes chez moi :( alors que j'ai un mac encore correct lol

ou se trouve la ligne de code pour modifier le tirage aleatoires ? et si je veux rajouter des tirage aussi ?

donc il ne bogue pas ! un peu rapide comme remarque ...

le code est pourtant très optimisé, mais on peut supprimer l'affichage des couples pour accélérer, si tu trouves mieux, tu me le dis

pas de code pour ajouter, je fais une formule =alea.entre.bornes(1;36) puis je copie en valeur sinon les nombres changent !

Où est-ce qu'il bogue ? quelle est l'instruction. Chez moi c'est ok !

il met beaucoup de temps a faire le calcule presque 10 minutes chez moi :( alors que j'ai un mac encore correct lol

ou se trouve la ligne de code pour modifier le tirage aleatoires ? et si je veux rajouter des tirage aussi ?

donc il ne bogue pas ! un peu rapide comme remarque ...

le code est pourtant très optimisé, mais on peut supprimer l'affichage des couples pour accélérer, si tu trouves mieux, tu me le dis

pas de code pour ajouter, je fais une formule =alea.entre.bornes(1;36) puis je copie en valeur sinon les nombres changent !

oui désoler :( car j'avais du redémarrer mon ordi aprés l'ouverture du fichier la première fois mais tu a raison remarque un peut rapide de ma part :(

je veux bien supprimer l'affichage des couple et du coup mettre de 0;36 et je pense que tous sera parfait pour moi

merci beaucoup et encore désoler de pas avoir pris le temps de relancer le fichier avant la remarque ^^

Je ne suis pas certain que l'amélioration soit fulgurante !

11repetitions-1.xlsm (31.06 Ko)

Je ne suis pas certain que l'amélioration soit fulgurante !

11repetitions-1.xlsm (31.06 Ko)

c'est vrai mais en tous cas merci beaucoup pour ton travail mais je pense que je me suis mal expliquer :( car il ne fait pas vraiment ce que je veux j'envoie une image pour etre plus precis merci encore

capture d e cran 2020 10 31 a 13 10 26

Bonjour à tous,

les stats et probas sont loin dans ma mémoire mais je dirais que la probabilité de tirer x n° à la roulette est de =1/37^x
Non ?

Sinon tu as oublié le 0 Steelson
eric

Exact,

Bon ce qui m'intéressait, c'était le codage, après, les valeurs on met ce que l'on veut !

Exact,

Bon ce qui m'intéressait, c'était le codage, après, les valeurs on met ce que l'on veut !

je pense que je me suis mal expliquer :( car il ne fait pas vraiment ce
que je veux j'envoie une image pour être plus précis voir "deuxième photos "

capture d e cran 2020 10 31 a 13 22 00

merci encore

capture d e cran 2020 10 31 a 13 32 44

ok, vu, je vais modifier en ce sens

c'est-à-dire que tu figes 12 numéros et que l'on va puiser là-dedans

j'ai quand même une question ... ta série est ordonnée, toujours croissante, et tu veux retrouver dans une suite de x nombres les x premiers nombres de ta suite ? dans ce cas on peut en effet accélérer la macro

je vais aussi téléchargé ce que tu avais posté (je ne l'avais pas encore fait)

au vu de ton fichier, je reste encore perplexe sur ma compréhension du sujet

néanmoins j'avais préparé ceci

  1. une suite-référence de 12 nombres de 0 à 36 et ordonnée
  2. un tirage aléatoire d'un grand nombre de numéros de 0 à 36
  3. une recherche dans le tirage d'une suite (quelle que soit son ordre) de n nombres parmi la suite-référence
  4. s'il faut maintenant (c'est toujours ma question) puiser les n nombres au hasard dans les 12 de la suite-référence, on peut
  5. reste aussi la présentation des résultats, ...
Rechercher des sujets similaires à "algo calcule numeros predefinie tirer suite tirage"