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 :
http://stackoverflow.com/questions/4437250/choose-list-variable-given-probability-of-each-variable quando finisco di scrivere lo script lo posto così magari mi date qualche feedback (sono comunque alle prime armi). Il giorno 17 settembre 2012 19:02, Daniele Varrazzo <p...@develer.com> ha scritto: > On 2012-09-17 17:21, Antonio Piepoli wrote: > >> def choose(p): >> r = random.random() >> index = 0 >> while (r > 0): >> r -= probs[index] >> index += 1 >> return index-1 >> > > 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. > > Io l'avrei scritta così, ma è solo una questione idiomatica: funzionano > allo stesso modo: > > def choose2(probs): > r = random.random() > for i, p in enumerate(probs): > r -= p > if r < 0: > return i > > 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. > > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > ______________________________**_________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/**mailman/listinfo/python<http://lists.python.it/mailman/listinfo/python> > -- Antonio Piepoli
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python