有没有可能用暹罗/德拉卢比雷的方法做魔术方块而不用模?
我想用它做奇数n×n幻方。
发布于 2015-03-05 15:22:56
是的,有可能。用Python3.5编写:
def siamese_method(n):
assert(n % 2 != 0), 'Square side size should be odd!'
square = [[0 for x in range(n)] for x in range(n)]
x = 0
y = int((n + 1) / 2 - 1)
square[x][y] = 1
for i in range(2, n * n + 1):
x_old = x
y_old = y
if x == 0:
x = n - 1
else:
x -= 1
if y == n - 1:
y = 0
else:
y += 1
while square[x][y] != 0:
if x == n - 1:
x = 0
else:
x = x_old + 1
y = y_old
square[x][y] = i
for j in square:
print(j)
siamese_method(3)输出结果如下:
[8, 1, 6]
[3, 5, 7]
[4, 9, 2]https://stackoverflow.com/questions/28878632
复制相似问题