Форум сайта python.su
1
def partial_sum(seq, start, dir): start, stop = (start + 1, len(seq)) if dir > 0 else (0, start) return sum(seq[i] for i in xrange(start, stop)) def find_saws(k, n): if n < 1: return 0 elif n == 1: return k else: return 2 * sum(reduce(lambda m, v: [partial_sum(m, i, ((v+1)%2)*2-1) for i, _ in enumerate(m)], range(n-2), range(k)))
Офлайн
1
sergeek, pnk.andrian !!!!
Охренительно Супер.
Спасибо буду изучать!
Офлайн
7
from itertools import accumulate def count2(k, n): ran = acc = range(1,k+1) for l in range(n-1): acc = tuple( accumulate(acc[k-p-1] if k>p else 0 for p in ran ) ) return acc[-1]*2 if n > 1 else k
Отредактировано Isem (Янв. 25, 2013 08:50:37)
Офлайн