Форум сайта python.su
43
def snake(width, height, pos=1): way = [pos] shift = lambda offset : lambda : pos + offset up, down, right = shift(-width), shift(width), shift(1) is_top = lambda : pos in range(1, width+1) is_bottom = lambda : pos in range(width*(height-1) + 1, width*height) is_end = lambda : pos == width*height def go(where): nonlocal pos pos = where() way.append(pos) direction = down while not is_end(): go(direction) if is_bottom(): go(right) direction = up elif is_top(): go(right) direction = down return way print(snake(5,4))

Офлайн
1
Ну вы приколисты, тогда чтобы уже совсем всё “понятно” было:
from math import * S, w, h = 1, 5, 4 def nextdif(n): f = lambda n, p=h: sum([cos(-2*pi*n*k/p)/p for k in range(p)]) return round((-1+2*floor(((n+h-1)%(2*h))/h))*(w*((f(n)+1)%2)+f(n))+2*f(n,2*h)) for n in range(w*h-1): print(S, end=', '); S += nextdif(n+1) print(S)
Офлайн
43
Eulerно для меня оно действительно выглядит значительно понятнее остальных решений
Ну вы приколисты, тогда чтобы уже совсем всё “понятно” было:
Офлайн
0
всем спасибо, я в небольшом шоке.
Офлайн