[python] Vypocet variaci
Jan Jakubuv
jakubuv na gmail.com
Čtvrtek Listopad 15 17:59:59 CET 2007
dobry den,
osobne nevim o tom, ze by takova funkce byla vestavena jako zakladni
funkce do pythonu. nicmene zkuste napriklad:
def variace(s,n):
if n==0:
yield ()
else:
for (x,xs) in [(y,s[:i]+s[i+1:]) for (i,y) in enumerate(s)]:
for vxs in variace(xs,n-1):
yield tuple((x,)+vxs)
funguje jako iterator, prvni parametr je cokoliv "iterable" (napr.
mnozina, tuple, seznam,...) a pri kazdem pruchodu iteratorem vraci
tuple, ktera ma n prvku reprezentujici jednu variaci. jeste pro
jistotu maly priklad:
>>> for x in variace([1,2,3],2):
... print x
...
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
>>>
jinak pokud spustite google tak zcela jiste naleznete vhodnou
knihovnu. napr http://mail.python.org/pipermail/python-list/2002-October/167307.html
honza.
2007/11/15, Radek Machulka <radek.machulka na gmail.com>:
> Zdravim,
> nevi nekdo, zda existuje v pythonu nejaka hotova funkce pro vypocet vsech
> N-clennych variaci z dane mnoziny prvku? Nejak nemuzu nic najit a programovat
> se mi to dvakrat nechce :).
> Dik Radek
> --
> Linux khoi 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686
> GNU/Linux
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
Další informace o konferenci Python