큰 수에 대하여 (3) - 크누스 윗화살표 표기법(Knuth's Up-Arrow Notation)

written by jjycjn   2014. 8. 8. 11:28

크누스 윗화살표 표기법(Knuth's up-arrow notation)은 매우 큰 정수를 표기하는 방법중의 하나로 크누스(Donald Knuth) 에 의해 1976년에 개발되었다. 곱셈은 덧셈의 반복연산, 거듭제곱은 곱셈의 반복연산이라는 사실에 착안하며, 거듭제곱의 반복연산 (테트레이션(tetration)), 테트레이션의 반복연산등을 쉽게 표기할 수 있는 방법 중 하나로써 개발되었다. 크누스 윗화살표 표기법의 간단한 설명하면 다음과 같다.


먼저 an 거듭제곱을 an으로 나타낸다. 다시말해 an:=an으로 정의한다. 또한 a↑↑nann회 반복시행한 것, 즉 테트레이션(tetration)을 나타낸다. 따라서 a↑↑n:=na이다. 이와 같은 방식으로 a↑↑↑n (펜테이션(pentation)), a↑↑↑↑n (헥세이션(hexation)) 등도 정의할 수 있다. 크누스 윗화살표 표기법을 이용한 계산값들이 얼마나 폭발적으로 증가하는지, 간단한 예를 통해 살펴보자.

  • 22=2×2=4
    23=2×2×2=8
    24=2×2×2×2=16

  • 2↑↑2=22=4
    2↑↑3=222=24=16
    2↑↑4=2222=224=216=65,536

여기까지는 실생활에서도 가끔은 볼 수 있는 연산이기 때문에 그 값을 계산하는 것이 그렇게 어렵지만은 않다. 하지만 아래의 식들을 보면 알 수 있듯이 얼핏 간단해 보이는 2↑↑↑4도 그 크기를 가늠하는 것 조차 불가능해 보인다.

  • 2↑↑↑2=2↑↑2=4
    2↑↑↑3=2↑↑(2↑↑2)=2↑↑4=65,536 
    2↑↑↑4=2↑↑(2↑↑(2↑↑(2↑↑2)))=2↑↑65,536=22265,536-times

  • 2↑↑↑↑2=2↑↑↑2=4 
    2↑↑↑↑3=2↑↑↑(2↑↑↑2)=2↑↑↑4=22265,536-times
    2↑↑↑↑4=2↑↑↑(2↑↑↑(2↑↑↑2))=2↑↑↑(22265,536-times)=???

마지막 계산은 거듭제곱만을 이용해 표현하기가 거의 불가능에 가까워 계산을 생략하였다. 이제 여기까지 살펴 본 크누스 윗화살표 표기법을 일반화하여 akn은 다음을 나타낸다고 하자.

akn=a(n1)-timesa(n1)-times(n1)-timesak-times

위의 표현법을 바탕으로 크노스 윗화살표 표기법을 재귀적으로 정의하면 다음과 같다:

정수 a와 음이 아닌 정수n0, k0에 대하여,

akn:={naif k=01if k1 and n=0ak1(ak(n1))otherwise


위의 정의는 곱셈 (a0n=na)과 거듭제곱 (a1n=an=an)을 모두 포함한다. 위의 재귀적 정의를 이용하면, 실제로 크누스 윗화살표 표기법을 이용한 계산을 컴퓨터로 간단하게 코딩할 수 있다. 나아가 2↑↑↑2등의 계산을 직접 손으로 재귀적 정의에 의해 단계적으로 구해보는 것도 재미있을 것이다.

  ::  
  • 공유하기  ::