cwbe coordinatez:
101
63540
2076399
856608
4857954
4858151
4858210

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::2
4 ❤️


show[ 2 | 3] flat


este ma napada, ze by sa to dalo mierne upravit takto:

fm = lambda x: [[x[0]]+y for y in fm(x[1:])] + fm(x[1:]) if x else [[]]

co je trochu strucnejsie




0000010100063540020763990085660804857954048581510485821004858425
mimmon
 mimmon      14.08.2009 - 20:30:48 , level: 1, UP   NEW
tak tomuto hovorim elegantne riesenie.. vdaka

este si to vyskusam (nie som na svojom pocitaci, nemam tu python), musim vidiet na vlastne oci, ze to bezchybne funguje.. :)

ale opat obdivujem moznosti, co ponuka lambda

000001010006354002076399008566080485795404858151048582100485842504858491
ziman
 ziman      14.08.2009 - 21:20:08 , level: 2, UP   NEW
A inak, velmi som ti nepomohol, pretoze som ti prezradil rovno riesenie, bral som to skor ako taku zabavku pre seba.

Skus ale z neho vycitat, ako to funguje a preco, co ten zapis znamena.

00000101000635400207639900856608048579540485815104858210048584250485849104858530
mimmon
 mimmon      14.08.2009 - 21:51:38 , level: 3, UP   NEW
myslim, ze som to pochopil, ide viac-menej o riesenie pomocou rekurzie.. a urcite si aj sam vyskusam vyrobit tu funkciu.. ja to beriem tiez ako zabavku, hoci jej aplikaciu aj realne vyuzijem

0000010100063540020763990085660804857954048581510485821004858425048584910485853006386100
mimmon
 mimmon      14.12.2011 - 16:08:57 , level: 4, UP   NEW
prvocisla

def divi(a):
  for i in range(2,int(sqrt(a))+1):
    if not a%i: return [i]+divi(a/i)
  return [a]

000001010006354002076399008566080485795404858151048582100485842504858491048585300638610006452945
repelent
 repelent      20.01.2012 - 14:21:26 (modif: 20.01.2012 - 14:25:24), level: 5, UP   NEW !!CONTENT CHANGED!!
Python (cpython aspon) ma defaultne dost nizky limit na rekurziu (1000), takze radsej by som sa rekurzii vyhol v pripadoch, kde na ten limit mozes narazit. To len tak mimochodom. Pripadne sa da zmenit pomocou sys.setrecursionlimit() ale neviem aky to ma dopad na performance.

edit: a tiez pouzivaj xrange namiesto range ak to pises v python 2.x; xrange vracia generator co je setrnejsie ak a) nepotrebujes celu sekvenciu b) sekvencia je fakt velka. v python 3.x uz range vracia generator

00000101000635400207639900856608048579540485815104858210048584250485849104858530063861000645294506458244
mimmon
 mimmon      23.01.2012 - 14:46:06 , level: 6, UP   NEW
dakujem za tip

taketo prakticke rady a usmernenia by som potreboval castejsie :)

000001010006354002076399008566080485795404858151048582100485842504858481
ziman
 ziman      14.08.2009 - 21:16:34 (modif: 14.08.2009 - 21:20:33), level: 2, UP   NEW !!CONTENT CHANGED!!
na to nepotrebujes lambdu :)

def fm(x): return [[x[0]]+y for y in fm(x[1:])] + fm(x[1:]) if x else [[]]

len som to tam tak nejak zo zotrvacnosti...

0000010100063540020763990085660804857954048581510485821004858334
ksyz
 ksyz      14.08.2009 - 19:15:32 , level: 1, UP   NEW
sick :)