[목차] == 개요 == ふぃっしゅ数 Fish number 일본 [[2ch]]에서 [[큰 수]] 만들기 배틀의 결과로 탄생한 큰 수. 대략 2002년 무렵에 탄생했으며, 이 수를 만든 사람은 휫슛슈(ふぃっしゅっしゅ)라는 아이디를 쓰는 2채널러. 유명한 큰 수인 [[그레이엄 수]]를 소개하는 과정에서 그레이엄 수보다 큰 수를 만들어보자는 취지에서 "가장 커다란 수를 제시하는 녀석이 우승"이라는 [[스레]]가 생겼고, 그 과정에서 휫슛슈라는 사람이 정의한 것. 그레이엄 수에 대한 [[오마주]]의 의미로, 특정한 [[자연수]]와 [[함수]]에서 얻어지는 변환을 63회 반복한 수로 정의되어 있다. 일본 인터넷 세계에서는 나름 그레이엄 수보다 큰 일본의 피쉬 수로 지명도가 있으나, 거대함 이외의 수학적인 의미는 없으며[* 그레이엄 수가 의미 있는 이유는 단순히 크기 때문이 아니라 '수학적 증명에 사용되는 수' 가운데 가장 크기 때문임을 상기할 것], 설명도 이해하기 어려운 편. 사실 단순히 크기만 놓고 따지면 이것보다 훨씬 큰 수도 많다. ~~1씩 더하기만 하면 된다.~~ == 정의 == 피쉬 수는 또한 여러 버전이 있는데 대표적인 F1(피쉬 수 버전1)의 정의는 다음과 같다.[*출처 [[http://gyafun.jp/ln/en.html|해당 페이지]]의 'Definition of Fish number version 1 (F,,1,,)' 문단] > 1. 자연수-함수쌍에서 자연수-함수쌍으로의 사상 [math(S)]([math(S)]변환)를 아래와 같이 정의한다. > [math(S : [m, f(x)] \to [g(m), g(x)])] > 단 [math(g(x))]는 아래와 같이 정의된다. > [math(B(0, n) = f(n))] > [math(B(m+1, 0) = B(m, 1))] > [math(B(m+1, n+1) = B(m, B(m+1, n)))] > [math(g(x) = B(x, x))] > 1. 자연수-함수-[math(S)]변환쌍에서 자연수-함수-[math(S)]변환쌍으로의 사상 [math(SS)]를 아래와 같이 정의한다. > [math(SS : [m, f(x), S] \to [n, g(x), S2])] > 단 [math(S2)]와 [math(n, g(x))]는 순서대로 아래와 같이 정의된다. > [math(S2 = S^{f(m)})] > [math(S2 : [m, f(x)] \to [n, g(x)])] > 1. [math([3, x+1, S])]에 [math(SS)] 변환을 63번 반복하여 얻은 자연수를 피쉬 수([math(F_1)]), 함수를 피쉬 함수([math(F_1(x))])라 한다. 이 이외에도 6가지 버전이 더 존재한다. == 접근 == 다음은 피쉬 수의 계산 과정을 그나마 이해하기 쉽도록 풀어 쓴 것이다. === 함수 B(m, n) === 위 정의의 [math(B(m, n))]을 조금 풀어 쓰면 다음과 같다. * [math(B(0, n) = f(n))] * [math(B(m, 0) = B(m-1, 1))] * [math(B(m, n) = B(m-1, B(m-1,\ ...\ B(m-1, 1)\ ...\ )))] (n+1번 중첩) 예를 들어 [math(f(x)=x+1)]일 때 [math(B(2, 2))]를 전개하면 다음과 같다. [math(B(2, 2))] [math(=B(1, B(1, B(1, 1))))] [math(=B(1, B(1, B(0, B(0, 1)))))] [math(=B(1, B(1, B(0, 2))))] [math(=B(1, B(1, 3)))] [math(=B(1, B(0, B(0, B(0, B(0, 1))))))] [math(=...)] [math(=7)] 위와 같이 [math(f(x)=x+1)]인 특수한 경우를 '''아커만 함수'''(Ackermann function)라고 하고, [math(Ack(m, n))]과 같이 표기한다. 계산 과정이 복잡하다 보니 계산해서 특정한 값이 정말 나오기는 하는 건지 의심스러울 수 있는데, 이는 [[수학적 귀납법]]으로 다음과 같이 증명할 수 있다. * [math(m=0)]이면 [math(B(0, n))]은 ([math(n)]의 값에 상관없이) [math(f(n))]의 값을 갖는다. * [math(B(x, n)=B(x-1, B(x-1,\ ...\ B(x-1, 1)\ ...\ )))]이므로 [math(m=x-1)]일 때 함숫값을 갖는다면 [math(m=x)]일 때도 함숫값을 갖는다. 이 함수는 [math(m)], [math(n)]의 값에 따라 그 결과가 기하급수적이라는 말로는 부족할 정도로 커지며, 특히 [math(m)]이 커질 때 그런 경향을 보인다. 예를 들어 [math(Ack(2, 4))]는 11이지만, [math(Ack(4, 2))]는 [[http://www.wolframalpha.com/input/?i=Ack(4,+2)|19729'''자리''' 수]]가 나온다. 이 아커만 함수 B(n,n)는 [[fgh]]로 [math(f_\omega(n))]으로 근사할 수 있다. === S변환 === [math(S)]변환은 다음과 같이 표현할 수 있다. * 자연수와 함수의 쌍 [math([m, f(x)])]를 준비한다. * 주어진 함수 [math(f(x))]로 [math(g(x)=B(x, x))]를 정의한다. * 정의한 함수 [math(g(x))]로 [math(g(m))]을 계산한다. * 위에서 계산하고 정의한 자연수와 함수의 쌍 [math([g(m), g(x)])]가 변환 결과이다. 시험 삼아 [math([3, x+1])]에 [math(S)]변환을 두 번 반복해 보자. [math([g(3), g(x)])] = [math([Ack(3, 3), Ack(x, x)])]인데, [math(Ack(m, n) = 2 \uparrow^{m-2} (n+3)-3)]임이 알려져 있으므로([[https://en.wikipedia.org/wiki/Ackermann_function#Definition_and_properties|#]]) 변환 결과는 [math([2^6 - 3, Ack(x, x)])] = [math([61, Ack(x, x)])]이 된다. 이를 한 번 더 변환하면 [math([61, Ack(x, x)])] = [math([g(61), g(x)])] = [math([B(61, 61), B(x, x)])]가 된다. 여기서 [math(B(m, n))]이 어떤 함수인지 짐작해 보기 위해 [math(B(2, 4))]를 전개해 보자. [math(B(2, 4))] [math(=B(1, B(1, B(1, B(1, B(1, 1))))))] [math(=...)] [math(=B(1, B(1, B(1, B(1, 61)))))] [math(=B(1, B(1, B(1, B(0, B(0, B(0, ... B(0, 1) ... )))))))] ([math(B(0, n))]이 62회 중첩) [math(=B(1, B(1, B(1, g^{62}(1)))))] ([math(B(0, n)=g(n))]이므로) [math(=B(1, B(1, B(1, g^{61}(3)))))] [math(=B(1, B(1, B(1, g^{60}(61)))))] [math(=...)] 이 시점에서 이미 정상적인 계산이 불가능해진다. [math(Ack(4, 2))]도 이미 19729자리 수가 나오는 마당에 [math(g(61)=Ack(61, 61))]은... 게다가 이건 계산이 끝날 시점도 아니고, '''계산 초반이다.''' 그리고, 원래 계산하려던 것이 [math(B(2, 4))]가 아니라 [math(B(61, 61))]이었음을 생각해 보자. 여담으로, 위에서 전개한 [math(B(2, 4))]의 값을 그나마 짧고 알아보기 쉽게 표현하자면 [math(g^{g^{g^{g^{62}(1)+1}(1)+1}(1)+1}(1))]이 된다. === SS변환 === [math(SS)]변환을 간단히 표현하면 다음과 같다. * 자연수, 함수, S변환의 쌍 [math([m, f(x), S])]를 준비한다. * 새로운 변환 [math(S2)]를 '변환 [math(S)]를 [math(f(m))]번 반복하는 것'으로 정의한다. * 주어진 자연수와 함수의 쌍 [math([m, f(x)])]에 방금 정의한 변환 [math(S2)]를 가해서 새로운 쌍 [math([n, g(x)])]를 얻는다. * 위에서 계산하고 정의한 자연수, 함수, S변환의 쌍 [math([n, g(x), S2])]가 변환 결과이다. 피쉬 수는 자연수-함수-[math(S)]변환쌍인 [math([3, x+1, S])]에 [math(SS)]변환을 63번 가해서 나온 자연수로, 피쉬 함수는 같은 과정을 거쳐서 나온 함수로 정의된다. [math([3, x+1, S])]에 [math(SS)]변환을 가해 보자. [math(f(3)=4)]이므로 새로 정의할 [math(S2)]변환은 [math(S)]변환을 4번 반복하는 것으로 나타낼 수 있다. 하지만 [[포기하면 편해|[math([3, x+1])]에 S변환 2번부터 이미 답이 없다는 것을 생각하면...]] 게다가 1회 변환부터 [[답이 없다|답이 없는]] [math(SS)]변환을 무려 63번이나 반복해야 피쉬 수가 나온다. --[[생각하는 것을 그만두었다]].-- == 자매품 == 이 수 자체로도 이미 [[크고 아름다운]]데, 현재 시점에서는 자매품이 무려 7개나 있다(...) 다음 내용은 Googology Wiki(큰 수 위키)의 내용을 참고하여 작성하였다. * 1번째 피쉬 수(Fish number 1): 이 문서의 정의~SS변환까지에서 다루고 있는 피쉬 수. [[Fast-growing hierarchy]]로 나타내면 [math(f_{\omega^2+1}(63))] 정도의 값이 나온다. * 2번째 피쉬 수(Fish number 2): 위의 1번째 피쉬 수와 마찬가지로 2002년경에 나온 피쉬 수. 1번째 피쉬 수와 정의는 매우 비슷하나(초반은 아예 같다!), 약간의 차이가 있어 1번째 것보다는 값이 약간(?) 더 크게 나온다. [[Fast-growing hierarchy]]로 나타내면 [math(f_{\omega^3}(63))] 정도의 값이 나온다. * 3번째 피쉬 수(Fish number 3): 2002년경에 나온 피쉬 수.[[Fast-growing hierarchy]]로 나타내면 [math(f_{\omega^{\omega+1}63+1}(63))] 정도의 값이 나온다. * 4번째 피쉬 수(Fish number 4): 2002년경에 나온 피쉬 수. 2번째로 큰 피쉬 수이며, [[튜링 머신]]을 사용하여 크기가 이전보다 비약적으로 상승하였다.[* 그 무시무시한 [[fgh]]로도 근사가 불가능할 정도이다!] 7번째 피쉬 수처럼 너무 커서 정확한 값을 계산하기는 어렵다. * 5번째 피쉬 수(Fish number 5): 2003년경에 나온 피쉬 수.[[Fast-growing hierarchy]]로 나타내면 [math(f_{\epsilon_0+1}(63))] 정도의 값이 나온다. * 6번째 피쉬 수(Fish number 6): 2007년경에 나온 피쉬 수. [[Fast-growing hierarchy]]로 나타내면 [math(f_{\zeta_0+1}(63))] 정도의 값이 나온다 * 7번째 피쉬 수(Fish number 7): 2013년에 나온 가장 큰 피쉬 수. 참고로 피쉬 수를 작은 수부터 나열하면, 1번째<2번째<3번째<5번째<6번째'''<<<4번째<7번째'''다. 참고로 '''볼드체'''는 값이 너무 커서 정확한 값의 형태로 정의되지 않은 수다. == 여담 == 만든 이의 설명에 따르면 이미 2회 변환에서 그레이엄 수보다 큰 결과값이 나온다. 만든 이가 온라인상에 [[http://gyafun.jp/ln/largenumber.pdf|거대수론]]이라는 논문 형태로 정리해 놓았다. == 관련 문서 및 사이트 == * [[그레이엄 수]] * [[큰 수]] * [[빅풋(수)]] * [[http://googology.wikia.com/wiki/Fish_numbers|Googology Wiki의 Fish numbers 문서]], [[http://googology.wikia.com/wiki/Fish_number_1|Fish number 1 문서]] [[분류:큰 수]]