Générer un nombre avec une probabilité
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour
Je cherche un moyen de générer un nombre en fonction d'une probabilité et d'un intervalle
Par exemple, je veux un nombre entier entre 1 et 5, avec les probabilités de tirage suivantes :
1: 10%
2: 15%
3: 5%
4: 50%
5: 20%
Voila si possible une formule, une appli, un logiciel que vous avez a me proposer je serais content :)
Bonne journée
Je cherche un moyen de générer un nombre en fonction d'une probabilité et d'un intervalle
Par exemple, je veux un nombre entier entre 1 et 5, avec les probabilités de tirage suivantes :
1: 10%
2: 15%
3: 5%
4: 50%
5: 20%
Voila si possible une formule, une appli, un logiciel que vous avez a me proposer je serais content :)
Bonne journée
A voir également:
- Excel aléatoire avec probabilité
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
2 réponses
Salut,
Comme solution rapide, le plus simple est de remplir un tableau de int de 100 lignes. En prenant ton exemple il y aura 10 fois 1 dans le tableau, 15 fois 2, etc.
ensuite tu tire un rand compris entre 0 et 99 (ou 1 et 100) et tu récupère la valeur dans le tableau.
naga
Comme solution rapide, le plus simple est de remplir un tableau de int de 100 lignes. En prenant ton exemple il y aura 10 fois 1 dans le tableau, 15 fois 2, etc.
ensuite tu tire un rand compris entre 0 et 99 (ou 1 et 100) et tu récupère la valeur dans le tableau.
naga
Créé un fichier .html et copie ce contenu:
Lorsque tu clic sur le bouton, ca affichera le nombre en prenant en compte ce que tu veux.
Pour changer les récurence, ajouter des nombres, etc, c'est à cette ligne:
J'ai repris ta demande. Si tu veux ajouter 6 par exemple et mettre 5 et 6 à 10% ca ferai:
Note que le code se fiche totalement du pourcentage, si tu fais:
ca ne posera pas de problème.
naga
<HTML> <BODY onload="loadPage()"> <button type="button" onClick="getAndPrint()" style="position:absolute;height:50%;width:100%;">Get rand</button> <input type="text" id="res" style="position:absolute;height:50%;width:100%;top:50%;font-size: 20;text-align: center;" /> <SCRIPT> loadPage=function(){ var oAr = [ [1,10] , [2,15] , [3,5] , [4,50] , [5,20] ] setArr(oAr); } var stArr; setArr = function( origArray ){ stArr=Array(); for(i = 0 ; i < origArray.length ; i++) { for(j = 0 ; j < origArray[i][1] ; j++) { stArr.push(origArray[i][0]); } } } getVal = function(){ return stArr[Math.floor((Math.random() * stArr.length) + 1)]; } getAndPrint = function() { var val=getVal(); document.getElementById('res').value=val; } </SCRIPT> </BODY> </HTML>
Lorsque tu clic sur le bouton, ca affichera le nombre en prenant en compte ce que tu veux.
Pour changer les récurence, ajouter des nombres, etc, c'est à cette ligne:
var oAr = [ [1,10] , [2,15] , [3,5] , [4,50] , [5,20] ]
J'ai repris ta demande. Si tu veux ajouter 6 par exemple et mettre 5 et 6 à 10% ca ferai:
var oAr = [ [1,10] , [2,15] , [3,5] , [4,50] , [5,10] , [6,10] ]
Note que le code se fiche totalement du pourcentage, si tu fais:
var oAr = [ [1,30] , [2,15] , [3,5] , [4,50] , [5,10] , [6,80] ]
ca ne posera pas de problème.
naga
et qu'entends tu par portabilité? un tableau de 100 int c'est rien du tout (si t es sur une plateforme 64bits ca représente 800 octets (de mémoire ca doit être ca - et la moitié sur du 32), avoir un bloc de texte prendra beaucoup plus de mémoire.
Bah le plus simple sera de faire ca en javascript, tu pourra changer tes proba à la volée sans recompiler et l executer avec n import quel navigateur (pc ou smartphone, tout os).
Si j ai le temps j en ferai un petit