Генератор магических квадратов
Создавайте магические квадраты любого нечётного размера (3×3 до 11×11).
Об этом инструменте
Магический квадрат — это классика занимательной математики: квадратная сетка, заполненная различными числами так, что сумма по каждой строке, столбцу и диагонали одинакова и называется магической константой. Этот генератор мгновенно строит корректный магический квадрат для любого нечётного порядка, избавляя вас от проб и ошибок при ручном составлении.
Просто выберите нечётный размер от 3x3 до 11x11 и сгенерируйте квадрат; каждая строка, столбец и главная диагональ дадут ровно одну и ту же сумму. Это удобно для обучения числовым закономерностям, создания головоломок, изучения занимательной математики или проверки учебного задания по программированию.
Совет: магические квадраты нечётного порядка строятся сиамским методом, а магическая константа неуклонно растёт с увеличением размера. Все вычисления выполняются локально в вашем браузере, поэтому никакие данные не покидают ваше устройство.
Часто задаваемые вопросы
Реализация кода
def generate_odd_magic_square(n):
"""Siamese (De la Loubère) method for odd n."""
grid = [[0] * n for _ in range(n)]
row, col = 0, n // 2
for num in range(1, n * n + 1):
grid[row][col] = num
next_row = (row - 1) % n
next_col = (col + 1) % n
if grid[next_row][next_col] != 0:
row = (row + 1) % n
else:
row, col = next_row, next_col
return grid
def magic_constant(n):
return n * (n * n + 1) // 2
for n in [3, 5]:
sq = generate_odd_magic_square(n)
print(f"\n{n}x{n} Magic Square (constant={magic_constant(n)}):")
for row in sq:
print(" ".join(f"{v:3}" for v in row))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.