
Tupper's self-referential formula는 수학과 컴퓨터 과학의 교차점에서 발견된 흥미로운 현상입니다. 이 공식은 그 자체로 그래프를 그릴 수 있는 능력을 가지고 있으며, 그것이 바로 이 공식의 독특한 매력입니다. 이 글에서는 이 공식의 구조와 작동 원리에 대해 설명하겠습니다.
공식의 탄생 배경
이 공식은 2001년 캐나다의 수학자 Jeff Tupper가 발표하였습니다. 그는 이 공식을 그의 박사 논문의 일부로 제시하였으며, 그래픽과 수학의 교차점에서 새로운 연구 주제로 다루었습니다. Tupper는 그래픽 표현을 수학적으로 다루는 방법에 관심을 가지고 있었습니다. 그의 연구는 이미지를 수학적으로 표현하고 조작하는 방법에 집중하였으며, 이 공식은 그 연구의 결과물 중 하나입니다.
공식의 구조와 그래프
이 공식은 자기 참조(self-reference)라는 개념을 수학적으로 표현한 것입니다. 공식이 자기 자신을 그릴 수 있다는 점은 수학과 예술, 그리고 철학적인 의미까지 연결됩니다. 이 공식은 그래픽과 수학이 어떻게 융합될 수 있는지를 보여줍니다. 복잡한 이미지를 단순한 수학적 표현으로 나타낼 수 있다는 것은 컴퓨터 그래픽, 알고리즘 디자인, 데이터 압축 등 다양한 분야에서의 응용이 가능함을 시사합니다.
Tupper's self-referential formula는 다음과 같은 불연속 함수로 표현됩니다.
$$\frac{1}{2} < \left\lfloor \mathrm{mod}\left(\left\lfloor \frac{y}{17} \right\rfloor 2^{-17 \lfloor x \rfloor - \mathrm{mod}(\lfloor y\rfloor, 17)},2\right)\right\rfloor < 1$$
이 함수는 $x$와 $y$의 값에 따라 0 또는 1의 값을 가집니다. 그래프 상에서 이 값은 픽셀의 색상을 결정하게 됩니다. 이 공식의 놀라운 점은 특정 범위의 $y$ 값에 대해 그래프를 그리면, 공식 자체의 비트맵 이미지가 나타난다는 것입니다.
그래프의 표현
이 공식을 그래프로 표현하면, $x$와 $y$의 좌표에 따라 픽셀이 채워지거나 비워지는 것을 볼 수 있습니다. 이렇게 그려진 그래프는 공식 자체를 나타내는 비트맵 이미지와 일치하게 됩니다. 비트맵 이미지는 픽셀의 배열로 구성되며, 각 픽셀은 색상을 가집니다. Tupper's self-referential formula는 이러한 비트맵 이미지를 수학적으로 표현한 것으로 볼 수 있으며, 그래프를 통해 이미지를 시각화할 수 있습니다.
마무리
Tupper's self-referential formula는 그 자체로 흥미로운 수학적 현상을 보여주는 것뿐만 아니라, 그래픽과 수학의 만남, 자기 참조라는 철학적 개념까지도 연결해줍니다. 이 공식은 단순한 수학적 표현을 넘어서 다양한 분야와 연결되며, 계속해서 많은 관심과 연구를 받고 있습니다. 이러한 공식은 우리에게 수학이 단순한 숫자의 연산을 넘어서 예술과 철학, 심지어는 인간의 사고방식과도 연결될 수 있음을 보여주는 아름다운 예시로 남게 됩니다.
from math import floor
def tuppers_formula(x, y):
return 0.5 < floor((y // 17 // 2 ** (17 * floor(x) + floor(y) % 17)) % 2)
k = 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719
for y in range(k, k+17):
for x in range(105, -1, -1):
if tuppers_formula(x, y):
print('@', end='')
else:
print(' ', end='')
print('')You know what's cooler than magic? Math.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!