all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
13
Task/Zig-zag-matrix/Python/zig-zag-matrix-1.py
Normal file
13
Task/Zig-zag-matrix/Python/zig-zag-matrix-1.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
def zigzag(n):
|
||||
indexorder = sorted(((x,y) for x in range(n) for y in range(n)),
|
||||
key = lambda (x,y): (x+y, -y if (x+y) % 2 else y) )
|
||||
return {index: n for n,index in enumerate(indexorder)}
|
||||
|
||||
def printzz(myarray):
|
||||
n = int(len(myarray)** 0.5 +0.5)
|
||||
for x in range(n):
|
||||
for y in range(n):
|
||||
print "%2i" % myarray[(x,y)],
|
||||
print
|
||||
|
||||
printzz(zigzag(6))
|
||||
18
Task/Zig-zag-matrix/Python/zig-zag-matrix-2.py
Normal file
18
Task/Zig-zag-matrix/Python/zig-zag-matrix-2.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
def zigzag(n):
|
||||
def move(i, j):
|
||||
if j < (n - 1):
|
||||
return max(0, i-1), j+1
|
||||
else:
|
||||
return i+1, j
|
||||
a = [[0] * n for _ in xrange(n)]
|
||||
x, y = 0, 0
|
||||
for v in xrange(n * n):
|
||||
a[y][x] = v
|
||||
if (x + y) & 1:
|
||||
x, y = move(x, y)
|
||||
else:
|
||||
y, x = move(y, x)
|
||||
return a
|
||||
|
||||
from pprint import pprint
|
||||
pprint(zigzag(5))
|
||||
5
Task/Zig-zag-matrix/Python/zig-zag-matrix-3.py
Normal file
5
Task/Zig-zag-matrix/Python/zig-zag-matrix-3.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[[0, 1, 5, 6, 14],
|
||||
[2, 4, 7, 13, 15],
|
||||
[3, 8, 12, 16, 21],
|
||||
[9, 11, 17, 20, 22],
|
||||
[10, 18, 19, 23, 24]]
|
||||
20
Task/Zig-zag-matrix/Python/zig-zag-matrix-4.py
Normal file
20
Task/Zig-zag-matrix/Python/zig-zag-matrix-4.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#ZigZag
|
||||
#
|
||||
# Nigel Galloway: June 7th., 2012,
|
||||
#
|
||||
COLS = 9
|
||||
def CX(x, ran):
|
||||
while True:
|
||||
x += 2 * next(ran)
|
||||
yield x
|
||||
x += 1
|
||||
yield x
|
||||
ran = []
|
||||
d = -1
|
||||
for V in CX(1,iter(list(range(0,COLS,2)) + list(range(COLS-1-COLS%2,0,-2)))):
|
||||
ran.append(iter(range(V, V+COLS*d, d)))
|
||||
d *= -1
|
||||
for x in range(0,COLS):
|
||||
for y in range(x, x+COLS):
|
||||
print(repr(next(ran[y])).rjust(3), end = ' ')
|
||||
print()
|
||||
Loading…
Add table
Add a link
Reference in a new issue