Random : faire favoriser des chiffres
Résolu
ghFrankfurt
Messages postés
207
Date d'inscription
Statut
Membre
Dernière intervention
-
ghFrankfurt Messages postés 207 Date d'inscription Statut Membre Dernière intervention -
ghFrankfurt Messages postés 207 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche un moyen optimal de faire favoriser des chiffres sur un random en python 2.7.5
Par exemple j'ai besoin de 10 chiffres aléatoire entre (0, 15)
mais les chiffres entre 0 et 5 devraient ressortir plus souvent que 6 à 10 et ceux ci plus souvent que 11 à 15.
J'imagine deux possibilités :
la première c'est de faire un random entre 0 et 150 et tout ce qui est en dessous de 100, je convertis à une valeur entre 0 et 5, idem entre 100 et 140 et encore une fois de 140 à 150 pour les dernières valeurs.
L'autre possibilité que j'imagine, mais probablement moins performante, est de faire une liste en répétant les valeurs
valeurs = [0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
......
6,6,6,6,
7,7,7,7,
....
11,11,
12,12
....15]
return choice(valeurs)
Selon vous, quelle serait le meilleur moyen d'arriver à mes fins?
Merci !
Je cherche un moyen optimal de faire favoriser des chiffres sur un random en python 2.7.5
Par exemple j'ai besoin de 10 chiffres aléatoire entre (0, 15)
mais les chiffres entre 0 et 5 devraient ressortir plus souvent que 6 à 10 et ceux ci plus souvent que 11 à 15.
J'imagine deux possibilités :
la première c'est de faire un random entre 0 et 150 et tout ce qui est en dessous de 100, je convertis à une valeur entre 0 et 5, idem entre 100 et 140 et encore une fois de 140 à 150 pour les dernières valeurs.
L'autre possibilité que j'imagine, mais probablement moins performante, est de faire une liste en répétant les valeurs
valeurs = [0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
......
6,6,6,6,
7,7,7,7,
....
11,11,
12,12
....15]
return choice(valeurs)
Selon vous, quelle serait le meilleur moyen d'arriver à mes fins?
Merci !
A voir également:
- Random : faire favoriser des chiffres
- Chat random - Accueil - Réseaux sociaux
- Random Java ✓ - Forum Java
- Timer random - Forum Java
- Wow random ✓ - Forum Jeux vidéo
- Random. chat - Accueil - Réseaux sociaux
2 réponses
Je ne connais pas Python, mais on peut parler un peu théoriquement...
Quelle probabilité voudrais-tu pour chacun de tes nombres ? Parce que "plus souvent que" c'est un peu vague...
Genre : {0,1,2,3,4,5}=6.9% {6,7,8,9,10}=5.9%, {11,12,13,14,15}=4.9%
(ce qui fait presque 100%...)
Ou genre : {0,1,2,3,4,5}=10% {6,7,8,9,10}=6%, {11,12,13,14,15}=2%
(qui fait presque 100% aussi)
Bref, précises un peu plus ce que tu veux, parce que la méthode à adopter risque de dépendre du résultat que tu attends.
Quelle probabilité voudrais-tu pour chacun de tes nombres ? Parce que "plus souvent que" c'est un peu vague...
Genre : {0,1,2,3,4,5}=6.9% {6,7,8,9,10}=5.9%, {11,12,13,14,15}=4.9%
(ce qui fait presque 100%...)
Ou genre : {0,1,2,3,4,5}=10% {6,7,8,9,10}=6%, {11,12,13,14,15}=2%
(qui fait presque 100% aussi)
Bref, précises un peu plus ce que tu veux, parce que la méthode à adopter risque de dépendre du résultat que tu attends.
Salut,
J'avoue que je n'ai pas tout à fait saisi ton explication.
En tout cas, j'y ai compris ceci :
Et ça me semble pas trop mal. Donc je te remercie :D
J'avoue que je n'ai pas tout à fait saisi ton explication.
En tout cas, j'y ai compris ceci :
def random_tile(): tile = randint(1,100) if tile < 60: return randint(0, len(ID_TILES_FLOWERS)) elif tile < 90: return randint(0, len(ID_TILES_DECOS)) else: return randint(0, len(ID_TILES_TREES))
Et ça me semble pas trop mal. Donc je te remercie :D
{0,1,2,3,4,5}=A% {6,7,8,9,10}=B%, {11,12,13,14,15}=C%
Avec bien sûr A+B+C=100
Alors tu peux tirer un nombre aléatoire entre 1 et 100, :
Si tu es inférieur à A, tu tires aléatoirement un nombre entre {0,1,2,3,4,5}.
Si tu es entre A et A+B, tu tires aléatoirement un nombre entre {6,7,8,9,10}.
Si tu es entre A+B et A+B+C=100, tu tires aléatoirement un nombre entre {11,12,13,14,15}