초입방체의 전개

개시하다


초입방체는 2진법일 뿐이다.이 이야기는 다음 기사에서 진행된 것으로 이 지식을 전제로 초입방체를 전개한다.
초입방체

차리다


먼저 준비하다
import random
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def extension(dim):
    """ 次元を拡張する関数

    :param dim: 拡張する次元の配列
    :returns: 拡張された配列
    """
    return np.concatenate([np.array(dim) - 1, np.array(dim) + 1]).tolist()


dot = [[0], [0], [0], [0]]

직선


이것은 점에서 직선으로의 확장이다.직선의 수량은 쉽게 이해할 수 있는 0->1의 변화 수량(1->0도 직선이지만 중복을 허용하기 때문에 이런 변화를 무시한다).물론 아래의 직선은 하나뿐이다.
line = [extension(dot[0]), dot[1]*2, dot[2]*2, dot[3]*2]
for x, y, i in zip(line[0], line[1], range(len(line[0]))):
    plt.scatter([x], [y], marker="o", linestyle='None', label=str(i)+' : '+format(i, '0'+str(1)+'b'))
plt.legend()
plt.show()

정사각형


그리고 이것은 정사각형(2차원)으로 확장된 것이다.
square = [line[0]*2, extension(line[1]), line[2]*2, line[3]*2]
for x, y, i in zip(square[0], square[1], range(len(square[0]))):
    plt.scatter([x], [y], marker="o", linestyle='None', label=str(i)+' : '+format(i, '0'+str()+'b'))
plt.legend()
plt.show()

여기서 직선을 몇 개 그릴 수 있을까요?추출법은 하나의 차원을 고정시키고 나머지 차원에서 0->1의 변화 개수를 계산할 수 있다.즉, 첫 번째 차원은 0(빨간 테두리) 또는 1(푸른 테두리)에 고정된 두 개라는 것이다.

2D 눈은 0(빨간색 상자) 또는 1(파란색 상자)에 고정됩니다.(빨간 테두리, 파란 테두리는 라벨 안의 테두리...전달하기 어려우시면 죄송합니다)

평면은 00->01->10->11의 변화입니다.

입방체


그리고 이것은 입방체로 확장된 것이다.
cube = [square[0]*2, square[1]*2, extension(square[2]), square[3]*2]
fig = plt.figure()
fig = plt.figure(figsize=(10.0, 8.0))
Axes3D(fig)
for x, y, z, i in zip(cube[0], cube[1], cube[2], range(len(cube[0]))):
    plt.plot([x], [y], [z], marker="o", linestyle='None', label=str(i)+' : '+format(i, '0'+str(3)+'b'))
plt.legend()
plt.show()

여기서 평면을 몇 개 얻을 수 있겠지.추출법은 하나의 차원을 고정시키고 나머지 차원에서 00->01->10->11의 개수로 계수할 수 있다.아까처럼 색상 구분이 가능하지만, 실제 1차원을 0이나 1에 고정해 얻은 것은 2개이며, 2차를 고정해도 2개, 3차원도 2개를 고정한다.6개의 평면을 취할 수 있다는 것이다.더욱이 몇 차원으로 확장되든지 간에 같은 방법을 채택할 수 있다. 즉, N차원의 초입방체는 N-1차원의 초입방체 2N개로 구성된다.즉 입방체에서 정팔포체로 확장하면 정팔포체는 4차원 초입방체이기 때문에 3차원 초입방체이다×4=8개로 구성된다.가시화도 가능하지만 주사위를 펴도 알 수 있도록 전개 방법에 따라 모양이 다르니 포기하세요(실제로 펼쳐진 그림이 많네요).

총결산


이렇게 되면 흔히 볼 수 있는 정팔포자체를 펼치면 8개의 입방체가 되는 것을 받아들일 수 있을 것 같다.뭐, 그렇게 어렵지 않겠지.

좋은 웹페이지 즐겨찾기