여러분 중 일부는 BigNum Bakeoff에 익숙 할 것 입니다. 목표는 다소 제약 조건과 이론적 조건, 예를 들어 프로그램을 실행할 수있는 컴퓨터에서 출력이 가장 큰 C 프로그램을 작성하는 것으로 요약 될 수 있습니다.
같은 정신으로, 나는 모든 언어에 열려있는 비슷한 도전을하고 있습니다. 조건은 다음과 같습니다.
최대 512 바이트 .
최종 결과는 STDOUT에 인쇄해야합니다. 이것은 당신의 점수입니다. 여러 정수가 인쇄되면 연결됩니다.
출력은 정수 여야합니다. (참고 : 무한대는 정수가 아닙니다 .)
10보다 큰 내장 상수는 없지만 숫자 / 숫자는 괜찮습니다 (예 : Avogadro의 상수 (내장 상수)는 유효하지 않지만 10000은 아닙니다).
실행하기에 충분한 자원이 제공되면 프로그램 을 종료해야합니다 .
실행하기에 충분한 리소스가 제공되면 인쇄 된 출력물이 결정적 이어야합니다 .
프로그램을 실행하기에 충분한 정수 또는 bigint가 제공됩니다. 예를 들어, 프로그램에서 10 1,000,000 보다 작은 숫자에 기본 연산을 적용해야하는 경우,이를 실행하는 컴퓨터가 최소 10 1,000,000 까지의 숫자를 처리 할 수 있다고 가정 할 수 있습니다 . (참고 : 최대 10 2,000,000 까지의 숫자를 처리하는 컴퓨터에서 프로그램을 실행할 수도 있으므로 컴퓨터가 처리 할 수있는 최대 정수를 호출해도 결정적인 결과가 나오지 않습니다.)
5 초 이내에 프로그램 실행을 완료 할 수있는 충분한 컴퓨팅 성능이 제공됩니다. (따라서 프로그램이 컴퓨터에서 한 시간 동안 실행되어 곧 종료되지 않을까 걱정하지 마십시오.)
외부 리소스가 없으므로 내장 기능이 아닌 경우 Ackermann 함수를 가져 오는 것에 대해 생각하지 마십시오.
모든 마법 아이템은 관대 한 신에게서 일시적으로 빌려오고 있습니다.
알 수없는 한계를 가진 매우 큰
- 스티븐 H , 피스 f 3 + B³F + ω² (256 26 )
여기서 B³F는 기본 순서가있는 교회-클린 서수입니다.
B³F[n] = B³F(n), the Busy Beaver BrainF*** variant
B³F[x] = x, ω ≤ x < B³F
리더 보드 :
단순히 아름다운 예술 , 루비 f ψ 0 (X (Ω M + X (Ω M + 1 Ω M + 1 ) )) + 29 (9 9 9 )
Steven H , Pyth f ψ (Ω Ω ) + ω² + 183 (256 27! )
새는 수녀 , Python 3 f ε 0 (9 9 9 )
fejfo , Python 3 f ω ω 6 (f ω ω 5 (9e999))
스티븐 H , 파이썬 3 f ω ω + ω² (9 9 9 99 )
단순히 아름다운 예술 , 루비 f ω + 35 (9 9 99 )
i .. , Python 2 , f 3 (f 3 (141))
몇 가지 참고 사항 :
점수를 확인할 수 없으면 순위표에 올릴 수 없습니다. 따라서 프로그램을 약간 설명하는 것이 좋습니다.
마찬가지로, 당신이 당신의 숫자가 얼마나 큰지 이해하지 못하는 경우, 프로그램을 설명하고 우리는 그것을 해결하려고 노력할 것입니다.
Loader의 숫자 유형 프로그램 을 사용하는 경우 Loader의 숫자에 '빠르게 증가하는 계층 구조 측면에서 사소한 상한선이 없으므로 '알 수없는 한계를 가진 매우 큰 ' 이라는 별도의 범주에 배치합니다. 표준의 기본 순서.
숫자는 빠르게 성장하는 계층 구조 를 통해 순위가 결정됩니다 .
빠르게 성장하는 계층 구조를 사용하여 실제로 많은 수를 추정하는 방법을 배우려는 사람들을 위해 Discord 서버를 호스팅하고 있습니다. 대화방도 있습니다 : Ordinality .
비슷한 과제 :
출력 크기가 Graham의 수를 초과하는 최단 종료 프로그램
작은 값에 대해 빠르게 성장하는 계층 구조를 출력하는 간단한 프로그램을 보려면 다음과 같습니다.
루비 : 빠르게 성장하는 계층
#f_0:
f=->n{n+=1}
#f_1:
f=->n{n.times{n+=1};n}
#f_2:
f=->n{n.times{n.times{n+=1}};n}
#f_3:
f=->n{n.times{n.times{n.times{n+=1}}};n}
#f_ω:
f=->n{eval("n.times{"*n+"n+=1"+"}"*n);n}
#f_(ω+1):
f=->n{n.times{eval("n.times{"*n+"n+=1"+"}"*n)};n}
#f_(ω+2):
f=->n{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}};n}
#f_(ω+3):
f=->n{n.times{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}}};n}
#f_(ω∙2) = f_(ω+ω):
f=->n{eval("n.times{"*n+"eval(\"n.times{\"*n+\"n+=1\"+\"}\"*n)"+"}"*n);n}
기타
에서 f_x
로 이동하기 위해의 f_(x+1)
루프 하나를 추가합니다 n.times{...}
.
그렇지 않으면, 우리는 이전의 모든 예와 대각선을 이룹니다
f_ω(1) = f_1(1)
f_ω(2) = f_2(2)
f_ω(3) = f_3(3)
f_(ω+ω)(1) = f_(ω+1)(1)
f_(ω+ω)(2) = f_(ω+2)(2)
f_(ω+ω)(3) = f_(ω+3)(3)
기타