당신이 할 수있는 가장 큰 무한대를 만드십시오!


31

캔터 일반 양식

서수 시스템은 무한 수있는 시스템입니다. 무한한 숫자가 많습니다. 문자 그대로 자체 무한대를 나타내는 무한대가없는 무한한 숫자가 너무 많습니다. 위의 이미지는 작동 방식에 대한 약간의 아이디어를 제공합니다. 서수 ( Von Neumann construction )는 이전 서수 세트입니다. 예를 들어, 0은 빈 세트, 1은 {0} 세트, 2는 {0, 1} 세트 등입니다. 그런 다음 ω ({0, 1, 2, 3 ...})를 얻습니다. ω + 1은 {0, 1, 2, 3 ... ω}이고, ω 곱하기 2는 {0, 1, 2 ... ω, ω + 1, ω + 2 ...}이며 계속 계속 그.

프로그램은 {0, 1, 4}와 같은 서수 세트를 출력합니다. 그러면 점수 는 세트의 모든 서수보다 최소 서수보다 높습니다. {0, 1, 4}의 경우 점수는 5입니다. {0, 1, 2 ...}의 경우 점수는 ω입니다.

요청하는 서수를 어떻게 출력합니까? 물론 코드입니다. 즉, 프로그램은 잠재적으로 무한한 다른 프로그램 목록을 따옴표로 묶어 각 줄에 하나씩 출력합니다 (리터럴 문자열 "\ n"을 사용하여 새 줄을 나타냄). 프로그램은 위에 표시된 점수에 해당합니다. 예를 들어

"A"
"B"
"C"

A, B 및 C 자체가 유효한 답이고 점수가 {0, 1, 4} 인 경우 프로그램의 점수는 5입니다. A, B 및 C는 조각이 아닌 전체 프로그램이어야합니다.

위의 규칙에 따라 아무것도 출력하지 않는 프로그램의 점수는 0입니다 (모든 {}보다 가장 작은 서수는 0 임). 또한, 기초공리를 통해 세트가 자체를 포함 할 수 없음을 기억하십시오 . 즉, 모든 세트 (따라서 서수)에는 0까지의 경로가 있습니다. 이것은 풀 퀸이 세트가 아니기 때문에 유효하지 않다는 것을 의미합니다.

또한 프로그램은 외부 리소스 (자신의 파일, 인터넷 등)에 액세스 할 수 없습니다. 또한, 당신이 당신의 점수를 나열 할 때 , 당신이 할 수있는 경우 (그렇지 않으면, 다른 사람이 할 수있는 경우) cantor 일반 형태 의 점수가 cantor 일반 형태가 아닌 경우 함께 나란히 놓으십시오.

위의 모든 사항을 고려한 후 게시하는 실제 답변은 1,000,000 바이트 미만이어야합니다 (댓글을 세지 않음). (이 상한은 자동으로 생성 된 코드에만 적용됩니다.) 또한 사용하지 않는 각 바이트에 대해 점수를 증가시킵니다 (우리는 무한대를 다루기 때문에 서 수가 매우 가깝거나 같은 경우에만 고려됩니다). 이 단락은 생성 된 답변이나 생성 된 답변 등이 아닌 게시 ​​된 답변에만 적용됩니다.

여기에는 quine 태그가 있습니다. 큰 서수를 만드는 데 사용하기 위해 소스 자체 코드의 적어도 일부를 생성하는 것이 도움이 될 수 있습니다. 반드시 필요한 것은 아닙니다 (예를 들어, 점수가 5 인 제출에는 자체 소스 코드가 필요하지 않음).

해결되고 주석이 달린 예제는 여기를 참조 하십시오 .


무한한 수의 카디널을 출력하지 않아야합니까? 그리고 제한된 소스 부분은 어디에 있습니까? 이 태그는 코드 길이 제한이 아니라고 생각합니다. \ n으로 변환 된 따옴표 붙은 줄 바꿈과 개행을 모두 요구하는 것은 나에게 중복 된 것처럼 보였습니다. 다른 내장 목록 형식이 허용되어야합니까?
jimmy23013

@ user23013 선택에 따라 무한한 수의 서수를 출력하지 않을 수도 있습니다. 줄 바꿈 인용 및 이스케이프 처리는 중복되지만 많은 언어가 해당 작업을위한 기능을 내장하고 있습니다. 다른 목록 형식은 무엇을 의미합니까?
PyRulez

사용 된 언어로 인식 할 수있는 목록 또는 배열 형식을 의미했습니다. 또는 \ n 변환을 선택적으로 만드십시오. 많은 언어에서 빠른 수정은 줄 바꿈을 사용하지 않는 것입니다.
jimmy23013

3
이미지가 깨졌습니다. " 할 수 없다 "는 무슨 뜻입니까? " 당신은 1,000,000 바이트 아래에 있어야합니다 게시 실제 대답은 StackExchange 이상 30000 개 문자의 답을 허용하지 않기 때문에"실제 제한보다 훨씬 약하다.
피터 테일러

1
@NateEldredge 다르게 말하면, 계산 가능한 서 수가 계산 가능해야 함을 증명하십시오.
단순히 아름다운 예술

답변:


20

하스켈 : ψ (Ω Ω ω ) + 999672 포인트

main=print$f++shows f"$iterate(Z:@)Z";f="data N=Z|N:@N deriving Show;r=repeat;s Z=[];s(a:@Z)=r a;s(Z:@b)=($u b)<$>h b;s(a:@b)=do(f,c)<-h b`zip`s a;f<$>[c:@b,a]\nh=scanl(flip(.))id.t;t(Z:@Z)=r(:@Z);t(Z:@b)=((Z:@).)<$>t b;t(a:@b)=flip(:@).(:@b)<$>s a;u Z=Z;u(Z:@b)=u b;u(a:@_)=a;g f=mapM_$print.((f++shows f\"$s$\")++).show;main=g"

서수 ψ (Ω Ω ω ) + 1 인 329 바이트의 코드 : Jervell (2005)에서 발견 한 서수 의 트리 기반 표현 을 사용합니다 . 자식 α , β ,…, γ를 가진 나무 가 표시 됩니다. 이 왼쪽에서 오른쪽 순서는 Jervell과 동의하지만 Madore는 오른쪽에서 왼쪽으로 뒤집습니다.α :@ (β :@ (… :@ (γ :@ Z)…))

하스켈 : Γ 0 + 999777 포인트

main=print$f++shows f"$iterate((:[]).T)[]";f="data T=T[T]deriving(Eq,Ord,Show);r=reverse;s[]=[];s(T b:c)=(++c)<$>scanl(++)[](b>>cycle[fst(span(>=T b)c)++[T$r d]|d<-s$r b]);g f=mapM_$print.((f++shows f\"$s$\")++).show;main=g"

서수 Γ 0 + 1 을 갖는 224 바이트의 코드 . 이것은 Beklemishev의 웜을 서수 값 요소로 일반화 한 것으로 웜에 의해 재귀 적으로 표현됩니다.

하스켈 : ε 0 + 999853 포인트

main=print$f++shows f"$map(:[])[0..]";f="s[]=[];s(0:a)=[a];s(a:b)=b:s(a:fst(span(>=a)b)++a-1:b);g f=mapM_$print.((f++shows f\"$s$\")++).show;main=g"

서수 ε 0 + 1 인 148 바이트의 코드 . 이것은 Beklemishev의 Worm을 기반으로 합니다. 리스트

map(+1 ++ [0] ++ map(+1 ++ [0] ++  ++ [0] ++ map(+1

서수 (ω 나타내는 γ + ⋯ + ω β + ω α ) - 번째 레벨의 출력이 너무 1. [0], [1], [2], [3], ... (1) ω 나타내는 ω ω은 , ω는 ω ω , ..., 제 1 레벨의 출력 ε을 나타낸다 0 이고 초기 프로그램은 ε 0 + 1을 나타냅니다 .

하스켈 : ε 0 + 999807 포인트

main=print$f++shows f"$iterate(:@Z)Z";f="data N=Z|N:@N deriving Show;s Z=[];s(Z:@b)=repeat b;s(a:@Z)=scanl(flip(:@))Z$s a;s(a:@b)=(a:@)<$>s b;g f=mapM_$print.((f++shows f\"$s$\")++).show;main=g"

서수 ε 0 + 1 의 194 바이트 코드

Z는 0을 나타내고, 우리는 α 에 대한 무한 유도에 의해 ,이어서 βα :@ β≥ ω α + β 임을 증명할 수 있습니다 . 따라서 타워 ω ω ω 만큼 큰 2 차 출력이 있습니다 . 이는 첫 번째 레벨 출력이 ε 0 이상 이고 초기 프로그램이 ε 0 + 1 이상 임을 의미합니다 .


2
좋은 대답입니다. 더 설명 할 수 있다고 생각하십니까? 잘 정리 된 유형을 사용한다는 생각이 마음에 듭니다.
PyRulez

1
구체적으로, 어떤 서 수가 출력으로 생성됩니까?
PyRulez

또한, 당신은이 서수의 칸토르의 일반적인 형태를 알고 있습니까?
PyRulez 1

@PyRulez Cantor 정규형은 이러한 서수를 설명하는 데 도움이되지 않습니다. ψ (Ω ^ Ω ^ ω), Γ₀ 및 ε₀는 모두 엡실론 수 이므로 "단일"Cantor 정규형에 대한 쓸모없는 유사한 원형 방정식을 쓸 수 있습니다 (ψ (Ω ^ Ω ^ ω) = ω ^ ψ (Ω ^ Ω ^ ω), Γ₀ = ω ^ Γ₀, ε₀ = ω ^ ε₀), 모든 지수가 재귀 적으로 Cantor 정규 형식 인 표현식으로 작성할 수 없습니다.
Anders Kaseorg

1
따라서 왜 서수 축소 함수에 Veblen과 같은 정규 형식을 사용해야 하는가 : p. 따라서 Γ₀ = ψ (Ω ^ Ω) 및 ε₀ = ψ (0)을 쓸 수 있습니다.
Simply Beautiful Art

5

루비, ψ 0X (ψ M + 1M + 1 Ω M + 1 )) (0)) + 999663 포인트

내가 제대로 내 프로그램을 이해하고 가정 내 점수는 ψ입니다 0X (ψ M + 1M + 1 Ω M + 1 )) (0)) + 999,663 점 ψ이 기능을 붕괴 서수이다가, X는 카이입니다 기능 (Mahlo 붕괴 기능), M 은 최초의 Mahlo 'ordinal'입니다.

이 프로그램은 내가에 쓴 하나의 확장 TREE (3)보다 수가 더 큰 골프완전히 압도 지금 여기에 다른 모든 솔루션을.

z=->x,k{f=->a,n,b=a,q=n{c,d,e=a;!c ?q:a==c ?a-1:e==0||e&&d==0?c:e ?[[c,d,f[e,n,b,q]],f[d,n,b,q],c]:n<1?9:!d ?[f[b,n-1],c]:c==0?n:[t=[f[c,n],d],n,d==0?n:[f[d,n,b,t]]]};x==0??p:(w="\\"*k+"\"";y="";(0..1.0/0).map{|g|y+="x=#{f[x,g]};puts x==0??p:"+w+"#{z[f[x,g],k*2+1]}"+w+";"};y)};h=-1;(0..1.0/0).map{|i|puts "puts \"#{z[[i,h=[h,h,h]],1]}\""}

온라인으로 사용해보십시오!

루비, ψ 0I (I I )) + 999674 포인트

z=->x,k{f=->a,n,b=a{c,d,e,q=a;a==c ?a-1:e==0||d==0?(q ?[c]:c):e ?[[c,d,f[e,n,b],q],f[d,n,b],c,q]:[n<1?9:d&&c==0?[d]:d ?[f[c,n],d]:[f[b,n-1],f[c,n,b]],n,n]};x==0??p:(w="\\"*k+"\"";y="";(0..1.0/0).map{|g|y+="x=#{f[x,g]};puts(x==0??p:"+w+"#{z[f[x,g],k*2+1]}"+w+");"};y)};h=0;(0..1.0/0).map{|i|puts("puts(\"#{z[h=[h,h,h,0],1]}\")")}

온라인으로 사용해보십시오! (경고 : 명확하게 (0..1.0/0).map{...}종료 할 수 없기 때문에 많은 작업을 수행하지 않습니다. 무한히 많은 프로그램을 인쇄하는 방법입니다.)

루비, ψ 0I (0)) + 999697 점

z=->x,k{f=->a,n,b=a{c,d,e=a;a==c ?a-1:e==0||d==0?c:e ?[[c,d,f[e,n,b]],d-1,c]:[n<1?9:d&&c==0?[d]:d ?[f[c,n-1],d]:[f[b,n-=1],f[c,n,b]],n,n]};x==0??p:(w="\\"*k+"\"";y="";(0..1.0/0).map{|g|y+="x=#{f[x,g]};puts(x==0??p:"+w+"#{z[f[x,g],k*2+1]}"+w+");"};y)};h=0;(0..1.0/0).map{|i|h=[h];puts|i|puts("puts(\"#{z[hz[h=[h],1]}\")")}

온라인으로 사용해보십시오!

(0..5).map{...}대신 구현하는보다 합리적인 테스트 프로그램 :

z=->x,k{f=->a,n,b=a{c,d,e=a;a==c ?a-1:e==0||d==0?c:e ?[[c,d,f[e,n,b]],d-1,c]:[n<1?9:d&&c==0?[d]:d ?[f[c,n-1],d]:[f[b,n-=1],f[c,n,b]],n,n]};x==0??p:(w="\\"*k+"\"";y="";(0..5).map{|g|y+="x=#{f[x,g]};puts(x==0??p:"+w+"#{z[f[x,g],k*2+1]}"+w+");"};y)};h=0;(0..5).map{|i|h=[h];puts("puts(\"#{z[h,1]}\")")}

온라인으로 사용해보십시오!

불행하게도, 심지어와 함께 (1..1).map{...}, 당신은 수 있도록이 프로그램을 찾을 매우 메모리를 많이. 즉, 출력 길이가 SCG (13)와 같은 것을 초과합니다.

더 간단한 프로그램을 사용하면 몇 가지 값을 고려할 수 있습니다.

a = value you want to enter in.
z=->x,k{f=->a,n,b=a{c,d,e=a;a==c ?a-1:e==0||d==0?c:e ?[[c,d,f[e,n,b]],d-1,c]:[n<1?9:d&&c==0?[d]:d ?[f[c,n-1],d]:[f[b,n-=1],f[c,n,b]],n,n]};x==0??p:(w="\\"*k+"\"";y="x=#{f[x,k]};puts(x==0??p:"+w+"#{z[f[x,k],k*2+1]}"+w+");";y)};puts("puts(\"#{z[a,1]}\")")

온라인으로 사용해보십시오!

기본적으로 동일한 프로그램을 다음 형식으로 반복해서 인쇄합니다.

x=...;puts(x==0??p:"...");

초기화 x된 프로그램은 프로그램과 관련된 서수를 기록하고 축소 된 "..."후 프로그램을 보유합니다 x. 인 경우 x==0인쇄

p

이것은 0의 점수로 아무것도 인쇄하지 않는 프로그램입니다.

x=0;puts(x==0??p:"p");

점수가 1이고

x=1;puts(x==0??p:"x=0;puts(x==0??p:\"p\");");

점수가 2이고

x=2;puts(x==0??p:"x=1;puts(x==0??p:\"x=0;puts(x==0??p:\\\"p\\\");\");");

3 등의 점수를 가지며 내 원래 프로그램은 이러한 프로그램을 형식으로 인쇄합니다.

puts("...")

...위에 나열된 프로그램은 어디에 있습니까 ?

내 실제 프로그램은 실제로 이러한 프로그램을 형식으로 인쇄합니다.

x=0;puts(x==0??p:"p;p;p;p;p;...");

시간, 같은 값에 대한 무한 많은 ω, 그것은 유사한 무언가를

x=ω;puts(x==0??p:"(x=0 program); (x=1 program); (x=2 program); ...")

따라서 프로그램 점수

x=(some_ordinal);puts(x==0??p:"...")

이며 1+some_ordinal점수

puts("x=(some_ordinal);puts(x==0??p:\"...\")")

이며 1+some_ordinal+1점수

z=->x,k{f=->a,n,b=a{c,d,e=a;a==c ?a-1:e==0||d==0?c:e ?[[c,d,f[e,n,b]],d-1,c]:[n<1?9:d&&c==0?[d]:d ?[f[c,n-1],d]:[f[b,n-=1],f[c,n,b]],n,n]};x==0??p:(w="\\"*k+"\"";y="";(0..1.0/0).map{|g|y+="x=#{f[x,g]};puts(x==0??p:"+w+"#{z[f[x,g],k*2+1]}"+w+");"};y)};puts("puts(\"#{z[some_ordinal,1]}\")")

입니다 1+some_ordinal+2.


서수 설명 :

f[a,n,b]서수를 줄 a입니다.

모든 자연수는 그 아래 자연수로 감소합니다.

f[k,n,b] = k-1

[c,0,e]의 후속 버전이며 c항상로 줄어 듭니다 c.

f[[c,0,e],n,b] = c

[c,d,e] 거꾸로 연관성있는 하이퍼 오퍼레이션이며 다음과 같이 줄어 듭니다.

f[[c,d,0],n,b] = c
f[[c,d,e],n,b] = [[c,d,f[e,n,b]],f[d,n,b],c]

[0] 첫 번째 무한 서수 (ω에 해당)이며 다음과 같이 줄어 듭니다.

f[[0],0,b] = [9,0,0]
f[[0],n,b] = [n,n,n]

[c] cth 오메가 서수이며 다음과 같이 줄어 듭니다.

f[[c],0,b] = [9,0,0]
f[[c],n,b] = [[f[b,n-1,b],f[c,n,b]],n,n]
Note the two-argument array here.

[c,d]는 ψ d (c)이며 다음과 같이 줄어 듭니다.

f[[c,d],0,b] = [9,0,0]
f[[0,d],n,b] = [[d],n,n]
f[[c,d],n,b] = [[f[c,n,c],d],n,n]

[c,d,e,0]은 후속 작업 대신 [c,d,e]작업을 열거한다는 점을 제외하고 기본적으로와 동일 [c]합니다.

f[[c,0,e,0],n,b] = [c]
f[[c,d,0,0],n,b] = [c]
f[[c,d,e,0],n,b] = [[c,d,f[e,n,b],0],f[d,n,b],c,0]

Googology wikia에 따르면, 나는 접근 할 수없는 첫 번째 추기경이 아니고 접근 할 수없는 서수이기도합니다.
PyRulez

@PyRulez 예, 추기경 대신 서수를 갖는 것이 더 합리적입니다. 일반적 I으로 ω는 aleph null과 관련이있는 것처럼 액세스 할 수없는 첫 번째 추기경과 관련된 서수 라고합니다 .
Simply Beautiful Art

4

자바 + Brainf ***, ω + 999180 포인트

무한히 많은 Brainf *** 프로그램을 생성하는 Java 프로그램으로, 각각은 마지막 출력을 생성합니다.

왜? 내가 할 수 있기 때문에.

Brainf *** 세대 부분에 대한 개선 사항은 반드시 환영합니다.

import java.io.*;import java.util.*;import static java.lang.System.*;
class O{
    static String F(String s){
        String t="++++++++++++++++++++";
        List<Character> c=Arrays.asList('+','-','.','<','>','[',']');
        t+="[->++>++>++>+++>+++>++++>++++<<<<<<<]>+++>+++++>++++++>>++>+++++++++++>+++++++++++++";
        for(int x=0,i=6;x<s.length();x++){
            int d=c.indexOf(s.charAt(x)),k=d;
            while(d>i){d--;t+=">";}
            while(d<i){d++;t+="<";}
            t+=".";i=k;
        }return t;
    };
    static void p(String a){
        int i=48;while(i<a.length()){out.println(a.substring(i-48,i));i+=48;}
        out.println(a.substring(i-48));out.println();
    }
    public static void main(String[]a) throws Exception{setOut(new PrintStream("o.txt"));String b="";while(true)p(b=F(b));}
}

1
물론 취향에 따라 실제 이름을 사용하면 검색하기가 더 쉽습니다. :)
luser droog

1
@luserdroog 사실이 아닙니다. 여러 개의 검색어를 포함하는 방법을 알고 있으므로 다른 이름으로 BF 프로그램을 검색하는 것은 어렵습니다.
mbomb007

@ mbomb007 "brainfuck | brainf * ck | brainfcuk | brainf ** k | brainf *** | brain **** | brainfu * k | ..."를 입력하는 것이 "brainfuck"을 입력하는 것과 똑같이 어렵다는 것을 제안합니까?
Sparr

@Sparr StackExchange는 *와일드 카드 문자로 사용하므로 brainf***, 또는을 입력하십시오 brainf. 이러한 모든 변형이 검색 결과에 나타납니다. codegolf.stackexchange.com/help/searching
mbomb007

@ mbomb007 감사합니다, 나는 몰랐습니다
Sparr

4

Literate Haskell (GHC 7.10) : ω² + 999686 포인트.

이것은 예시적인 답변이 될 것입니다. 예를 들어, 문맹 프로그래밍 을 사용하는 것만 의미가 있습니다 . 그래도 점수가 좋지 않습니다. 버디가 내 점수를 줄이지 만 오. 먼저 도우미 함수를 만들어 봅시다. x가 서수이면 sx = x + 1이지만 예기치 않은 s 사용을 찾습니다.

> s x="main=putStrLn "++show x

show 함수는 운 좋게도 우리를 위해 모든 문자열 살균을 수행합니다. 0도 만들만한 가치가 있습니다. 0은 다른 후속 작업이 아니지만 s ""는 "main = putStrLn" ""와 같으며 0과 같습니다.

> z=s""

이제 n을 취하고 ω * n을 반환하는 함수를 만들 것입니다.

> o 0=z
> o n=q++"\nmain=putStrLn$unlines$map show$iterate s$o "++show(n-1)

{ω * (n-1), ω * (n-1) +1, ω * (n-1) +2, ...}로 ω * n을 만들어서 작동합니다. 이 질문은 무엇입니까? 왜 우리가 태그를 가지고 있는지 그 이유 입니다. q는 위의 도우미 기능입니다.

> h x = x ++ show x
> q = h "s x=\"main=putStrLn \"++show x\nz=s\"\"\no 0=z\no n=q++\"\\nmain=putStrLn$unlines$map show$iterate s$o \"++show(n-1)\nh x = x ++ show x\nq = h "

헬퍼 함수가 필요하지 않기 때문에 (s (o (n)), s (s (o (n))))이 아닌 q 만 필요하다는 점에 유의하십시오 (o에서 간접적으로 제외). 이제 유한 n에 대해 ω * n을 모두 출력하면됩니다.

> main=mapM(print.o)[0..]

우리는 거기에 갈. ω ^ 2 314 개의 코드 문자 만 사용하여 최종 보너스 999686을 청구하여 최종 점수 ω ^ 2 + 999686을 얻었습니다.이 점수는 이미 캔터의 일반적인 형식입니다.

처음 네 줄의 출력 (0, ω, ω * 2, ω * 3) :

"main=putStrLn \"\""
"s x=\"main=putStrLn \"++show x\nz=s\"\"\no 0=z\no n=q++\"\\nmain=putStrLn$unlines$map show$iterate s$o \"++show(n-1)\nh x = x ++ show x\nq = h \"s x=\\\"main=putStrLn \\\"++show x\\nz=s\\\"\\\"\\no 0=z\\no n=q++\\\"\\\\nmain=putStrLn$unlines$map show$iterate s$o \\\"++show(n-1)\\nh x = x ++ show x\\nq = h \"\nmain=putStrLn$unlines$map show$iterate s$o 0"
"s x=\"main=putStrLn \"++show x\nz=s\"\"\no 0=z\no n=q++\"\\nmain=putStrLn$unlines$map show$iterate s$o \"++show(n-1)\nh x = x ++ show x\nq = h \"s x=\\\"main=putStrLn \\\"++show x\\nz=s\\\"\\\"\\no 0=z\\no n=q++\\\"\\\\nmain=putStrLn$unlines$map show$iterate s$o \\\"++show(n-1)\\nh x = x ++ show x\\nq = h \"\nmain=putStrLn$unlines$map show$iterate s$o 1"
"s x=\"main=putStrLn \"++show x\nz=s\"\"\no 0=z\no n=q++\"\\nmain=putStrLn$unlines$map show$iterate s$o \"++show(n-1)\nh x = x ++ show x\nq = h \"s x=\\\"main=putStrLn \\\"++show x\\nz=s\\\"\\\"\\no 0=z\\no n=q++\\\"\\\\nmain=putStrLn$unlines$map show$iterate s$o \\\"++show(n-1)\\nh x = x ++ show x\\nq = h \"\nmain=putStrLn$unlines$map show$iterate s$o 2"

이제 심각한 해결책을 쓰십시오 :-)
Simply Beautiful Art

2

GolfScript, ε₀ + 1 + 999537 점

{{
{"{"lib`+"}:lib~~"@++"~"+p}:output;
{{}}:nothing;
{{1{).2$`+output 1}do}}:list;
{{\.(`2$`+" iter"+@`if output}}:iter;
{{1${@`@(2$`{rep~}+++\}{;;}if~}}:rep;
{\`\+}:combine;
{{\@@~}}:swap;
{{1${1$(1$`{rangemap~}+[+@@[\\]]{~}/+}{;;}if}}:rangemap;
{`{}+}:wrap;
}}:lib~~
nothing {iter combine list~} {rep combine} {~swap combine combine} rep combine swap combine combine {~list~} combine rangemap {~~} combine combine swap combine combine swap combine combine list~

아마 더 나을 수 있지만 더 큰 서수를 디버깅하고 증명하기에는 너무 게으르다.

작은 서수

#ω^ω^ω
#nothing {iter combine list~} {rep combine swap combine combine list~} {rep combine swap combine combine swap combine combine list~} rep combine swap combine combine swap combine combine swap combine combine list~
#ω^ω^2
#nothing {iter combine list~} { {rep combine swap combine combine list~} rep combine swap combine combine swap combine combine list~} rep combine swap combine combine swap combine combine list~
#ω^nω
#nothing {iter combine list~} 2 { {rep combine swap combine combine list~} rep combine swap combine combine swap combine combine list~} rep~
#ω^ω
#nothing {iter combine list~} {rep combine swap combine combine list~} rep combine swap combine combine swap combine combine list~
#ω^n
#nothing {iter combine list~} 3 {rep combine swap combine combine list~} rep~
#ω^3
#nothing {{iter combine list~} rep combine swap combine combine list~} rep combine swap combine combine list~
#ω^2
#nothing {iter combine list~} rep combine swap combine combine list~
#nω
#nothing 3 {iter combine list~} rep~
#2ω
#nothing iter combine list combine iter combine list~
#ω
#nothing iter combine list~
#finite
#2 nothing iter~

1

자바 스크립트 (Nashorn), ω2 + 999807 점

Nashorn 은 Java에 내장 된 Javascript 엔진입니다. 이것은 Rhino에서도 작동하지만 아직 테스트하지는 않았습니다.

c="(b=function(a){print(a?\"(b=\"+b+\")(\"+(a-1)+\")\":\"c=\\\"(b=function(a){print(a?'(b='+b+')'+'('+(a-1)+')':'')})(\\\";a=0;while(++a)print(c+a+\\\")\\\")\")})(";a=0;while(++a)print(c+a+")")

2ω 또는 ω²입니까?
kamoroso94 2

@ kamoroso94 참고로 2ω = ω.
Simply Beautiful Art

좋아, ω • 2, 내 나쁜.
kamoroso94
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.