Ciao,<br><br>mi ero trovato a scrivermi qualcosa di simile tempo fa;<br><br>ti copioincollo quel che ho fatto io, penso si possa adattare facilmente:<br><br><br>import random<br><br>#puoi mettere quanti nomi vuoi, con "frequenze assolute"<br>
d = {'T':20,'C':80}<br><br>#calcola distribuzione cumulata<br>def cdistr(d):<br> L = d.items()<br> L.sort()<br> X = sum(x[1] for x in L) + 0.0<br> x = 0<br> S = [0] * len(L)<br> for n,t in enumerate(L):<br>
x += t[1]/X <br> S[n] = (n,t[0],x)<br> return S<br><br>#ricerca binaria su lista di tuple di 3 elementi ordinata rispetto al terzo<br>def bsearch(L,y0,key=lambda x : x[2]):<br> n0,n1 = 0,len(L)-1<br>
while n0+1 < n1:<br>
n = (n0+n1) // 2<br> y = key(L[n])<br> if y > y0:<br> n1 = n<br> else:<br> n0 = n<br> if y0 < key(L[n0]):<br> return L[n0]<br> return L[n1]<br><br>#estrae un valore casuale secondo la distr di freq. F<br>
def getrndval(F):<br> y = random.random()<br> t = bsearch(F,y)<br> return t[1]<br><br><br>#Verifica:<br>F = cdistr(d)<br>C = {}<br><br>#Facciamo 100000 prove<br><br>for n in xrange(10000):<br> tc = getrndval(F)<br>
try:<br> C[tc] += 1<br> except KeyError:<br> C[tc] = 1<br><br>#Vediamo cosa viene:<br><br>>>> (C['T']+.0) / sum(C.values())<br>0.1968<br><br>#e ricordando che d = {'T':20,'C':80}<br>
#abbiamo che 'T' esce circa il 20% delle volte, come giusto.<br><br>Spero ti torni grossomodo utile<br>Ciao<br>Stefano<br><br><br><div class="gmail_quote">2012/6/29 Antonio Piepoli <span dir="ltr"><<a href="mailto:piepoli.antonio@gmail.com" target="_blank">piepoli.antonio@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Si mi rendo conto che finirņ a scrivermelo da solo ... <br>Purtroppo chi gestisce quel sito non ha risposto alla mia domanda.<br>
<br>Grazie anche per quel sito, provo a darci un'occhiata.<br><br><div class="gmail_quote">
Il giorno 28 giugno 2012 21:03, Marco Mariani <span dir="ltr"><<a href="mailto:birbag@gmail.com" target="_blank">birbag@gmail.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><div class="h5">
2012/6/28 Antonio Piepoli <span dir="ltr"><<a href="mailto:piepoli.antonio@gmail.com" target="_blank">piepoli.antonio@gmail.com</a>></span><br><div class="gmail_quote"><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sto cercando un sistema che generi tabelle. Ho trovato questo <a href="http://www.generatedata.com/#about" target="_blank">http://www.generatedata.com/#about</a> ma purtroppo non forniscono nessuna informazione sulla statistica dei dati (quanti nomi ci sono? che distribuzione scelgono?).<br>
<br>Qualcuno ne conosce altri ?<span><font color="#888888"><br></font></span></blockquote></div><div><br>io penso di avere usato questo, un paio di volte<br><br><a href="http://www.fakenamegenerator.com/order.php" target="_blank">http://www.fakenamegenerator.com/order.php</a><br>
<br><br></div></div>
<br></div></div>_______________________________________________<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/mailman/listinfo/python</a><br>
<br></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br>Antonio Piepoli<br><br>
</font></span><br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br>