Tirage d'un element d'un tableau avec une probabilité differente pour chacun

Résolu
hypothetix
Messages postés
24
Date d'inscription
dimanche 19 janvier 2020
Statut
Membre
Dernière intervention
9 mai 2022
- 7 déc. 2020 à 11:07
Whismeril
Messages postés
17447
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
23 juin 2022
- 13 déc. 2020 à 12:28
Bonjour à tous.

Je cherche a faire, en javascript, un tirage d'un element d'un tableau avec une probabilité differente pour chacun
Par exemple:

let tableau=[0,1,2,3];
tirage de un element avec une probabilité differente pour chacun
10% de tirer 0
15% de tirer 1
25% de tirer 2
50% de tirer 3


En Python c'est simple:
import random
tableau = [0, 1, 2, 3]
print(random.choices(tableau, weights=(10, 15, 25, 50), k=10))


Mais je ne trouve pas d'équivalent en javascript.

Merci

2 réponses

hypothetix
Messages postés
24
Date d'inscription
dimanche 19 janvier 2020
Statut
Membre
Dernière intervention
9 mai 2022
5
13 déc. 2020 à 11:58
J'ai trouvé la reponse ici:
https://stackoverflow.com/questions/41654006/numpy-random-choice-in-javascript

function randomChoice(p) {
    let rnd = p.reduce( (a, b) => a + b ) * Math.random();
    return p.findIndex( a => (rnd -= a) < 0 );
}

let result = randomChoice([0.10, 0.15, 0.25, 0.50]);


En seulement 2 lignes , ca laisse rêveur, non !
0
Whismeril
Messages postés
17447
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
23 juin 2022
599
13 déc. 2020 à 12:28
Bonjour,

merci d'avoir posté ta propre solution, cela pourra aider quelqu'un à l'avenir.

Peux tu marquer le sujet résolu?
0