[pyar] ayuda con un algoritmo, o algo.

John Rowland Lenton john.lenton en canonical.com
Jue Feb 2 18:52:35 ART 2012


On Thu, 2 Feb 2012 15:15:18 -0300, Daniel Moisset <dmoisset en machinalis.com> wrote:
> 2012/2/2 John Rowland Lenton <john.lenton en canonical.com>:
> > Hola!
> >
> > Tengo un problema de esos que a pyar le encanta, y pensé que lo
> > compartiría.
> 
> No lo termino de entender, pero a ver si se puede aclarar...

HLQP, a ver si puedo :)

> > Tengo un sistema que me tira una lista de (digamos) seis listas
> 
> El 6 es variable? (no creo que importa en una solucion elegante

más o menos. Puede ir cambiando, cuando vayamos agregando fuentes, pero
cada agregado puede ser considerado como un problema nuevo. Hoy, son
seis.

> > de entre
> > 0 y 10 elementos. Asociado a cada lista tengo un peso, y 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, pero que favorezca las minorías
> 
> Esta es la parte mas dificil de definir. que es una "minoria"? (no se
> si "minoria" es una lista de longitud 1, la lista mas corta de todas,
> una lista con menos que el promedio de elementos, ... ?)

quiero decir que en ningún caso quiero no incluir elementos de una
sub-lista nada más porque se redondea a cero. Que aunque las listas con
peso más chico traigan un solo elemento, ese elemento tiene que estar en
la salida.

  Los pesos tienen que ver con cuán "útiles en general" son las fuentes
  de las sublistas, pero las listas con peso bajo, que corresponden a
  resultados de nichos muy particulares, necesitan ser
  "descubribles". Sin este cuidado los resultados de las listas con
  pesos más altos van a casi siempre tapar los resultados que
  corresponden a minorías o a nichos (porque casi siempre traen pocos
  resultados).

> >(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).
> >
> > Qué complicado. A ver si con un ejemplo.
> >
> > Digamos que tengo los pesos [.4, .2, .1, .1, .1, .1]. Si el sistema me
> > tira [10, 10, 10, 10, 10, 10] elementos en cada lista de entrada,
> > necesito [4, 2, 1, 1, 1, 1] elementos de cada lista en la lista de
> > salida. Si me da [10, 0, 10, 1, 0, 10], necesito [5, 0, 2, 1, 0, 2].
> 
> Que propiedades queres de la salida? el resultado tiene que tener
> exactamente 10 elementos, o aproximadamente 10? noto algunas cosas
> raras como que el primer y tercer valor de ahi tienen salidas 5 y 2,
> pero los pesos son .4 y .1 (y 5/2 != .4/.1)

el número de elementos de la salida tiene que ser a lo sumo 10. Puede
ser más chico que 10 solamente cuando entre todas las sub-listas de
entrada no hay 10 elementos.

> Entiendo que el problema es completamente en relacion a las longitudes
> de las listas y no su contenido, no?

correcto.
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 489 bytes
Desc: no disponible
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120202/c9be57e6/attachment.sig>


More information about the pyar mailing list