<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Ciao a tutti. <br>Avrei bisogno di un aiuto. Spero che qualcuno di voi possa aiutarmi. Vi spiego il mio problema:<br><br>Ho un array di probabilita' di elementi, cioe' [0.88514, 0.0946, 0.006757, 0.01351]. Io voglio estrarre elementi random proporzionali alla loro probabilita', il primo elemento circa l'89% delle volte, il secondo circa il 10% delle volte eccc. Cio' che ho fatto e' questo:<br><br>from numpy as np <br>for num in range(300):<br>a = 5.6e3 <br>b = 2.5e6 <br>probs = [0.88514, 0.0946, 0.006757, 0.01351]<br>cutoffs = np.cumsum(probs)<br>temp = (b-a)*rand.uniform(0, cutoffs[-1])+a        <br> <br><br>In pratica ho calcolato la somma cumulativa delle probabilita' e poi ho calcolato la distribuzione random (in maniera uniforme) da zero (cioe' da a) fino al cutoffs (1). <br>Il risultato che ottengo non e' esattamente quello che speravo, nel senso che non estrae esattamente numeri random sulla base delle probabilita' che gli do in input. <br>Che cosa sto sbagliando? Qualcuno di voi puo' aiutarmi? <br>Esiste un'altra funzione che mi permette di estrarre numeri random nell'intervallo a,b tenendo in considerazione l'array di probabilita' che do in input?<br>Grazie mille per l'aiuto e scusate la poca competenza ma uso da poco python e non sono molto brava. <br><br>Francesca <br>                                     </div></body>
</html>