Re: Módulo para combinatoria

Cesar Ortiz cesar.ortiz en gmail.com
Mar Abr 18 16:01:39 CEST 2006


Muy interesante la construccion que habeis usado para la creación de las
listas.

No la habia visto nunca (claro no me he leido el tutorial de pe a pa).
Para los que como yo les haya intrigado, mas info en: Language Reference -->
Expressions --> Atoms --> List Displays.



On 4/18/06, Chema Cortes <py en ch3m4.org> wrote:
>
> David Asorey Álvarez escribió:
> > Estoy buscando algún módulo para hacer cálculos de combinatoria y
> > permutaciones. ¿Alguien conoce alguno?. En la clase set.Set se
> > incorporan algunas cosas pero no todo lo que me gustaría ;-)
> >
> > Busco algo que me permita calcular permutaciones y combinaciones con
> repetición:
> >
> > P(('a', 'b', 'c', 'a')) =
> > abca
> > aabc
> > bcaa
> > ...
> >
> > C(('a', 'b', 'c', 'a'), 3) =
> > aab
> > aac
> > bca
> > abc
> > ...
> >
> > Y la verdad, no me apetece mucho reinventar la rueda.
>
> Hace poco se habló de estas cosas en la lista:
>
> http://listas.aditel.org/archivos/python-es/2006-March/016657.html
>
>
> ...y para que no pienses mucho:
>
>
> def indexes(nelements,nc):  # nc>=2
>     s=range(nelements)
>     res=[[i,j] for i in s for j in s]
>     for n in range(nc-2):
>         res=[[i]+t for i in s for t in res]
>     return [t for t in res if len(set(t))==nc]
>
> l=('a', 'b', 'c', 'a')
> combinaciones=[ [l[i] for i in t] for t in indexes(len(l),3) ]
>
> print combinaciones
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>



--
Página personal: http://www.cesar.ortiz.name
Weblog: http://_cesar_ortiz_.blogspot.com/




Más información sobre la lista de distribución Python-es