Quantité de nombre aléatoire

pascal82

XLDnaute Occasionnel
Bonjour à tous,

Je dois générer une série de nombre aléatoire d'entier entre 0 et 2 (soit 0,1 et 2) sur 5 lignes et 20 colonnes (jusque là tout va bien). Par contre 2 contraintes supplémentaires par ligne:
1) Il faut le même nombre de "0" et de "2"
2) La quantité de "0" est comprise entre 4 et 6
Là par contre je n'arrive pas à organiser mes différents tests sans que cela ne devienne très lourd en temps de traitement.
Merci par avance

Cordialement
 

Pièces jointes

  • Aléatoire.xls
    38.5 KB · Affichages: 37
  • Aléatoire.xls
    38.5 KB · Affichages: 43
  • Aléatoire.xls
    38.5 KB · Affichages: 39

Dugenou

XLDnaute Barbatruc
Re : Quantité de nombre aléatoire

Bonjour,
En effet cela pourrait devenir un vrai casse tête. Mais d'après ton explication, et comme on le voit dans ta solution proposée, il n'y a que 3 quantités possibles pour les 0 et les 2 et donc les 1.
Il suffirait donc 1) de tirer au hasard laquelle des trois lignes on utilise, 2) de trier aléatoirement cette ligne.
Si ce n'est pas clair je te fais un exemple.
 

Dugenou

XLDnaute Barbatruc
Re : Quantité de nombre aléatoire

Re,
Avec exemple

Edit : exemple corrigé pour 5 lignes et sans résultat L0

Cordialement
 

Pièces jointes

  • pascal82 Aléatoire.xls
    45.5 KB · Affichages: 24
Dernière édition:

pascal82

XLDnaute Occasionnel
Re : Quantité de nombre aléatoire

Bonjour Dugenou,

Si je comprends bien ta proposition, tu fais tourner jusqu’à trouver la solution. Par contre ce qu'il me faudrait est l'affichage uniquement lorsque toutes les solutions répondent aux contraintes. Dans cet exemple il n'y a que 20 colonnes et 5 lignes, alors que le fichier de travail en comporte une centaine de chaque.
J'étais partis avec dans un premier temps une boucle "tant que" sur la vérification des contraintes par lignes pour basculer a la ligne suivante, mais le temps de traitement peu s'avérer très long selon les tirages, alors je cherche une autre méthode (uniquement VBA).

Cordialement

Code:
Private Function RandomEqualREAL!(Low!, High!)
    RandomEqualREAL = Rnd() * (High - Low) + Low
End Function

Sub Aleatoires()
    Dim i As Long, j As Long
Application.ScreenUpdating = False
Range("B3:U7").ClearContents

'------affecter les données ---------------------
    For j = 0 To 4
    Do Until ((Range("x3").Offset(j, 0).Value = Range("z3").Offset(j, 0).Value) And (Range("x3").Offset(j, 0).Value > 3 And Range("x3").Offset(j, 0).Value < 6))
        For i = 0 To 19
        Range("b3").Offset(j, i) = Round(RandomEqualREAL(0, 2), 0)
        Next i
    Loop
    Next j

Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Quantité de nombre aléatoire

Pascal,
Non, c'est pas ça. Il n'y a que 3 solutions en nb de 0 de 1 et de 2.
Donc je tire au hasard une des 3 solutions puis je répartis au hasard ces valeurs dans les colonnes.
Donc tous les tirages sont bons (à chaque fois que tu appuies sur F9 tu as une solution correcte pour les 5 lignes).
Si tu as plus de colonnes, il y aura plus de "tirages modèles"
Je suis incapable de lire et d'écrire du VBA, mais l'idée serait : 1) pour une ligne de valeurs à afficher on choisi un des N tirages modèles puis on distribue au hasard ces valeurs dans la ligne (il faut cependant toutes les distribuer).
Cordialement
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Quantité de nombre aléatoire

Bonsour®
contraintes par ligne:
1) Il faut le même nombre de "0" et de "2"
2) La quantité de "0" est comprise entre 4 et 6
...
sans que cela ne devienne très lourd en temps de traitement.
:rolleyes: il faut donc initialement appliquer les contraintes et générer la suite des valeurs
Puis aléatoirement piocher dans ces valeurs...
:cool: comme l'explique Dugenou :cool:

nb : :( problèmes possible avec MEFC pour version .xls 97-2003
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    45.4 KB · Affichages: 45
  • pascal82.xlsm
    28.7 KB · Affichages: 32
  • pascal82.xls
    86.5 KB · Affichages: 28
  • Capture.JPG
    Capture.JPG
    45.4 KB · Affichages: 46
  • Capture.JPG
    Capture.JPG
    45.4 KB · Affichages: 51
Dernière édition:

pascal82

XLDnaute Occasionnel
Re : Quantité de nombre aléatoire

Bonjour Modeste geedee, Dugenou,

En effet vous avez parfaitement raison, initialement je prenais le problème par le mauvais bout.
Maintenant le temps de traitement est tout à fait correct.

Encore un grand merci a vous deux.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 302
Messages
2 087 039
Membres
103 439
dernier inscrit
julienpipiou