[pyar] ayuda con un algoritmo, o algo.
DF--
dj.foguelman en gmail.com
Jue Feb 2 15:33:44 ART 2012
Yo entiendo que necesitas lo siguiente:
2012/2/2 John Rowland Lenton <john.lenton en canonical.com>
>
> Tengo listas. Asociado a cada lista tengo un peso,
quiero armar una lista que tenga 10 elementos tal que:
* el número de elementos de cada sub-lista original en la lista de salida
> sea proporcional al número que traía y al peso,
* que favorezca las minorías (es decir, si una sublista traía un sólo
> elemento, que esté todavía representada en la salida, por más que todas las
> otras hayan traído 10).
>
>
#!/usr/bin/env
import random
#estas son tus 6 listas armadas
queues = [{"muestra": random.sample(xrange(0, 1000), random.randint(1,
100)),
"peso":random.random()} for i in range (6) ]
# Aca definis la distribucion, esta es proporcional al peso de la lista.
def get_distribution(seq):
dist = len(seq["muestra"]) * seq["peso"]
if dist == 0:
dist += 1
return int(dist)
res = []
for el in queues:
k = get_distribution(el)
print "Sublista de %d elementos, se tomaran %d elementos al 'azar'" %
(len(el["muestra"]), k)
res.append(random.sample(el["muestra"], k))
#ahora aplano la lista
print reduce(lambda x, y: x + y, res)[:10]
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120202/34666fbd/attachment.html>
More information about the pyar
mailing list