구수략의 구조 읽기: 각득 생성 원리를 이용한 확장 가능성

by gg582 · 2026-07-11 14:24:13 · 17 views

# radial_symmetry_network_visualize.sage
# Visualization of the Radial Symmetry Network (RSN) in a Cross-Pattern Layout

def create_radial_symmetry_graph(n):
    """
    Creates an RSN graph.
    Structure: 5 radial clusters, each with one central vertex and n-1 peripheral vertices.
    """
    G = Graph()
    for i in range(5):
        for j in range(1, n):
            G.add_edge(f"V{i}_0", f"V{i}_{j}")
            
    # Connect cluster centers to form the core
    G.add_cycle([f"V{i}_0" for i in range(5)])
    return G

print("--- Radial Symmetry Network (RSN) - Cross-Pattern Layout ---")

for n in range(5, 10):
    G = create_radial_symmetry_graph(n)
    
    # 0: Center, 1:North, 2:South, 3:West, 4:East
    pos = {}
    coords = {0: (0, 0), 1: (0, 3), 2: (0, -3), 3: (-3, 0), 4: (3, 0)}
    
    for i in range(5):
        cx, cy = coords[i]
        pos[f"V{i}_0"] = (cx, cy)
        for j in range(1, n):
            angle = 2 * pi * (j-1) / (n-1)
            pos[f"V{i}_{j}"] = (cx + 0.6 * cos(angle), cy + 0.6 * sin(angle))
    
    symmetry_order = G.automorphism_group().order()
    evals = G.laplacian_matrix().eigenvalues()
    spectral_radius = float(max(evals).n())
    
    print(f"n={n} | Symmetry Order: {symmetry_order:<6} | Spectral Radius: {spectral_radius:.2f}")
    
    G.plot(pos=pos, vertex_size=250, vertex_color='salmon', vertex_labels=False, edge_color='gray',
           edge_thickness=0.5, title=f"RSN Cross-Pattern (n={n})").show()

구수략(九數略) 에는 오자각득, 육자각득, 칠자각득, 팔자각득, 구자각득처럼 하나의 생성 원리를 공유하는 여러 퍼즐이 등장한다. 이름은 서로 다르지만, 모두 같은 계열에 속하며 차수에 따라 서로 다른 구조를 만들어 낸다.

흥미로운 점은 각 퍼즐이 모두 같은 방식으로 그려져 있지 않다는 것이다. 어떤 것은 정점을 공유하는 육각 구조를 사용하고, 어떤 것은 사각형을 사용하며, 어떤 것은 중심에서 여러 방향으로 뻗는 방사형 구조를 사용한다. 원문에서는 각각의 규칙에 가장 적합한 형태를 선택했지만, 서로 다른 차수를 비교하려 하면 오히려 이러한 차이가 분석을 어렵게 만든다.

이번 글에서는 원문의 배치를 그대로 재현하는 대신, 모든 각득 구조를 하나의 공통된 방사형 레이아웃으로 다시 표현하여 생성 규칙과 부분합의 구조를 비교해 보았다.

왜 꽃 모양 레이아웃으로 바꾸었을까?

원문의 도형은 차수마다 서로 다르다.

오자각득과 육자각득은 여러 그룹이 정점을 공유하는 구조를 갖고 있으며, 팔자각득은 사각형 배치를 사용한다. 칠자각득과 구자각득은 비교적 방사형에 가까운 형태를 취한다.

이러한 차이는 퍼즐을 구성하는 데에는 적합하지만, 서로 다른 차수를 같은 기준에서 비교하기에는 불편하다.

그래서 이번 분석에서는 도형 자체보다 숫자들의 관계에 집중하기 위해 모든 구조를 동일한 꽃 모양 레이아웃으로 다시 배치하였다.

이 레이아웃은 원문을 복원하기 위한 것이 아니다. 서로 다른 차수에서 생성되는 그룹들을 같은 형태로 나타내어 부분합과 대칭성을 비교하기 위한 분석용 시각화이다.

부분합이라는 공통된 관점

레이아웃을 통일하면 각 퍼즐을 동일한 방식으로 다룰 수 있다.

각 그룹의 합은 물론이고, 중심을 포함하는 부분합이나 서로 대응하는 그룹들의 합을 같은 절차로 계산할 수 있다.

원문에서는 기하학적 형태가 서로 달라 이러한 공통점이 쉽게 보이지 않지만, 같은 구조로 다시 표현하면 생성 규칙이 유지하는 균형이 훨씬 선명하게 드러난다.

복잡한 정점 공유나 도형의 형태를 잠시 뒤로 미루고 숫자들의 연결 관계만 남기면, 각 차수가 어떤 방식으로 부분합을 유지하는지 직관적으로 비교할 수 있다.

차수가 커질수록 어떻게 달라질까?

표준화된 구조에서 각 차수를 분석하면 다음과 같은 결과를 얻을 수 있다.

차수 가능한 배치 수 부분합 연산 복잡도
5 약 7,962만 8.18
6 약 2,488억 9.23
7 약 1,934조 10.27
8 약 3,252경 11.30
9 약 1,065해 12.32

배치 가능한 경우의 수는 차수가 증가할수록 폭발적으로 증가한다.

반면 부분합을 계산하는 데 필요한 연산량은 비교적 완만하게 증가한다. 즉, 가능한 배치는 매우 빠르게 늘어나지만, 부분합이라는 관점에서는 모든 차수를 비슷한 방식으로 분석할 수 있다.

이러한 관점은 원문의 기하학적 형태만으로는 쉽게 드러나지 않는 생성 구조의 공통점을 보여 준다.

현대적인 분석 도구로 바라보기

이처럼 구조를 표준화하면 현대의 수학 소프트웨어에서도 다루기 쉬워진다.

특히 SageMath에서는 생성 알고리즘으로부터 그래프를 구성한 뒤 다양한 성질을 자동으로 분석할 수 있다.

예를 들어 다음과 같은 작업을 수행할 수 있다.

  • 생성 알고리즘으로부터 전체 구조 생성
  • 각 그룹의 부분합 계산
  • 부분합 분포의 시각화
  • 그래프의 자기동형군(Automorphism Group) 계산
  • 인접행렬과 스펙트럼 분석
  • 색칠 문제, 독립집합, 지름 등 그래프 이론적 성질 조사

즉, 종이 위에서 계산하던 퍼즐을 현대적인 그래프 객체로 바꾸는 순간, 수백 년 전에는 손으로 계산해야 했던 성질들을 몇 줄의 코드만으로 확인할 수 있다.

예를 들어 생성 알고리즘만 구현되어 있다면 SageMath에서는 다음과 같은 형태의 분석을 수행할 수 있다.

# G is a graph generated from an 각득 construction.

print(G.order())
print(G.size())

print(G.automorphism_group().order())
print(G.chromatic_number())

print(G.diameter())
print(G.girth())

print(G.spectrum())

생성 규칙은 차수마다 다르지만, 그래프로 변환된 이후의 분석 방법은 거의 동일하다.

이 덕분에 오자각득부터 구자각득까지를 같은 분석 파이프라인에서 비교할 수 있으며, 원문에서는 직관적으로만 확인할 수 있었던 대칭성이나 구조적 성질도 정량적으로 조사할 수 있다.

맺으며

이번에 사용한 꽃 모양 레이아웃은 원문을 현대적으로 바꾸려는 시도가 아니다.

오히려 서로 다른 차수의 각득 구조를 같은 좌표계에서 비교하기 위한 분석 도구에 가깝다. 기하학적 제약을 잠시 걷어내면 부분합, 대칭성, 생성 규칙처럼 모든 각득 계열이 공유하는 특징들이 훨씬 선명하게 드러난다.

구수략은 18세기의 산학서이지만, 생성 알고리즘을 그래프로 해석하는 순간 조합론과 그래프 이론의 관점에서도 충분히 탐구할 수 있는 흥미로운 연구 대상으로 다시 읽을 수 있다.

Back

Comments

No comments yet.