purtroppo non posso accettare il complimento perchè non è farina del mio sacco, quello che ho fatto io era "adattarla" al caso del dizionario con i risultati che notavi prima : <br><br><a href="http://stackoverflow.com/questions/4437250/choose-list-variable-given-probability-of-each-variable">http://stackoverflow.com/questions/4437250/choose-list-variable-given-probability-of-each-variable</a><br>
<br>quando finisco di scrivere lo script lo posto così magari mi date qualche feedback (sono comunque alle prime armi).<br><br><br><div class="gmail_quote">Il giorno 17 settembre 2012 19:02, Daniele Varrazzo <span dir="ltr"><<a href="mailto:piro@develer.com" target="_blank">piro@develer.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 2012-09-17 17:21, Antonio Piepoli wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
def choose(p):<br>
r = random.random()<br>
index = 0<br>
while (r > 0):<br>
r -= probs[index]<br>
index += 1<br>
return index-1<br>
</blockquote>
<br></div>
Hai sbagliato nome di variabile: p/probs. Non so se è un errore di copia e incolla nella mail. Comunque carina: ora è una funzione più generica a cui passi solo il vettore di probabilità e ti restituisce l'indice di quella scelta. Non male.<br>
<br>
Io l'avrei scritta così, ma è solo una questione idiomatica: funzionano allo stesso modo:<br>
<br>
def choose2(probs):<br>
r = random.random()<br>
for i, p in enumerate(probs):<br>
r -= p<br>
if r < 0:<br>
return i<br>
<br>
Ha lo stesso problema di essere o(n) nel numero di elementi da scegliere, mentre la mia soluzione nella prima mail era o(1), ma credo sia ininfluente per te, e la mia aveva svantaggi di altro tipo.<div class="HOEnZb"><div class="h5">
<br>
<br>
-- <br>
Daniele Varrazzo - Develer S.r.l.<br>
<a href="http://www.develer.com" target="_blank">http://www.develer.com</a><br>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/<u></u>mailman/listinfo/python</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Antonio Piepoli<br><br>