마법 정사각형 생성기
홀수 크기(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.