이론적으로 그레이엄 수를 출력


44

그레이엄의 번호 G는 다음과 같이 정의됩니다 :

u(3,n,1) = 3^n
u(3,1,m) = 3
u(3,n,m) = u(3,u(3,n-1,m),m-1)
[Knuth's up-arrow notation]
[Conway chained arrow notation]

THEN

g1 = u(3,3,4)
g2 = u(3,3,g1)
g3 = u(3,3,g2)
...
G = u(3,3,g63)

u(3,3,2)=7625597484987코드를 확인하라는 메시지가 표시 됩니다.

당신의 임무는 G충분한 정수 크기와 충분한 시간이 주어지면 결정적으로 값을 출력하는 프로그램 / 함수를 작성하는 것 입니다.

참고 문헌

리더 보드



7
임의성이 허용됩니까? 임의의 값을 출력하면 결국 Graham의 숫자가 생성되어야합니다.
마일

15
@miles 왜 지구상에서 이미 표준 허점이 아닌가? 명확히했다.
Leaky Nun

18
경고 : u (3, 3, 2) = u (3, 2, 3) = 7625597484987, 따라서 u (3, 5, 1) = 243과 같은 다른 값에서도 테스트해야합니다. 인수 순서.
Anders Kaseorg 2016 년

답변:


48

이진 람다 미적분 , 114 비트 = 14.25 바이트

16 진 덤프 :

00000000: 4457 42b0 2d88 1f9d 740e 5ed0 39ce 80    DWB.-...t.^.9..

이진 :

010001000101011101000010101100000010110110001000000111111001110101110100000011100101111011010000001110011100111010

설명

01 00                                           (λx.
│    01 00                                        (λy.
│    │    01 01 01 110                              x
│    │    │  │  └─ 10                               y
│    │    │  └─ 00                                  (λm.
│    │    │       01 01 01 10                         m
│    │    │       │  │  └─ 00                         (λg.
│    │    │       │  │       00                         λn.
│    │    │       │  │         01 01 10                  n
│    │    │       │  │         │  └─ 110                 g
│    │    │       │  │         └─ 00                     (λz.
│    │    │       │  │              10                     z))
│    │    │       │  └─ 00                            (λn.
│    │    │       │       00                            λf.
│    │    │       │         01 111110                    x
│    │    │       │         └─ 01 110                    (n
│    │    │       │            └─ 10                      f))
│    │    │       └─ 1110                             x)
│    │    └─ 10                                     y)
│    └─ 00                                        (λf.
│         00                                        λz.
│           01 110                                   f
│           └─ 01 01 1110                            (x
│              │  └─ 110                              f
│              └─ 10                                  z)))
└─ 00                                           (λf.
     00                                           λz.
       01 110                                      f
       └─ 01 110                                   (f
          └─ 01 110                                 (f
             └─ 10                                   z)))

이것은 (λ x . (λ y . x ym . mg . λ n . n g 1)) (λ n . λ f . x ( n f )) x ) y ) (λ f . λ z . f ( x f z ))) 3에서 모든 숫자는 교회 숫자로 표시됩니다.. 교회 숫자는 자연수의 표준 람다 미적분학 표현이며, 교회 숫자는 함수 반복으로 정의되기 때문에이 문제에 적합합니다. n g 는 함수 gn 번째 반복입니다 .

예를 들어, g는 함수 λ이며 , N . λ F . 3- ( N F )하는 교회 부호 곱하여 3 다음 λ N . n g 1은 교회 숫자의 거듭 제곱에 3을받는 함수입니다. 이 작업을 m 번 반복 하면

mg . λ n . n g 1) (λ n . λ f . 3 ( n f )) n = u (3, n , m ).

( 교회 숫자에서 1을 빼는 것이 불쾌 하기 때문에 지수 u (–, –, 1) 대신 곱셈 u (-, –, 0)을 기본 사례로 사용합니다 .

치환기 n = 3 :

mg . λ n . n g 1) (λ n . λ f . 3 ( n f )) 3 = u (3, 3, m ).

m = 4 에서 시작하여 해당 작업을 64 번 반복 하면

64 (λ m . mg . λ N . N g 1) (λ N . λ F . 3 ( N F )) 3) 4 = G .

이 표현을 최적화하려면 64 = 4 ^ 3 = 3 4를 대입합니다.

(3) 4 (λ m . mg . λ N . N g 1) (λ N . λ F . 3 ( N F )) 3) 4 = G .

4 = succ 3 = λ f를 기억하십시오 . λ z . 람다 인수로 f (3 f z ) :

y . 3 ym . mg . λ n . n g 1) (λ n . λ f . 3 ( n f )) 3) y ) (λ f . λ z . f (3 f z )) = G 입니다.

마지막으로 3 = λ f를 기억하십시오 . λ z . 람다 인수로 f ( f ( f z )) :

x . (λ y . x ym . mg . λ n . n g 1)) (λ n . λ f . x ( n f )) x ) y ) (λ f . λ z . f ( x f z ))) 3 = G 입니다.


이 언어에 대한 통역사는 어디에서 찾을 수 있습니까?
Dennis

4
@Dennis tromp.github.io/cl/cl.html은 그들 중 몇 가지가 있습니다.
Anders Kaseorg

1
이다 멋진 . 이것은 상당한 현상금이 필요합니다
고양이

1
14.25 bytes리더 보드를 망치고있는 것 같습니다. 로 구문 분석 25 bytes되므로 두 번째로 배치됩니다.
Dan

1
@ Dan 리더 보드 스 니펫을 수정했습니다.
Anders Kaseorg 2016 년

40

하스켈, 41 바이트

i=((!!).).iterate
i(($3).i(`i`1)(*3))4 64

설명:

(`i`1)f n= 는에서 시작 하는 함수의 반복을 i f 1 n계산합니다 . 특히 = 3 ^ n 이고이 구성을 m 번 반복 하면 = u (3, n , m )이됩니다. 이를 = u (3, n , m ) 로 다시 작성 하고이 구성을 k 번 반복 하여 = g _ k 를 얻을 수 있습니다.nf1(`i`1)(*3)ni(`i`1)(*3)m n(($n).i(`i`1)(*3))mi(($3).i(`i`1)(*3))4 k


16

하스켈, 43 바이트

q=((!!).).iterate
g=q(`q`1)(3*)
q(`g`3)4$64

g인라인 을 뒤집는 더 좋은 방법이 있습니다 .

46 바이트 :

i=iterate
n%0=3*n
n%m=i(%(m-1))1!!n
i(3%)4!!64

48 바이트 :

n%1=3^n
1%m=3
n%m=(n-1)%m%(m-1)
iterate(3%)4!!64

정의를 적어 두십시오.

기본 사례는 바이트를 절약하지만 0까지 백업 된 비트 클리너입니다. 대체 정의를 작성하는 것이 더 쉬울 것입니다.

n%0=3*n
0%m=1
n%m=(n-1)%m%(m-1)
z=iterate(3%)2!!1

+사이의 괄호를 제거하기 위해 우선 순위가 낮은 다른 함수를 사용할 수 있습니까 m-1?
Leaky Nun

44 바이트를 세면 4와 64는 어떻게됩니까?
Leaky Nun

작은 매개 변수 테스트에서 복사했습니다. 새 함수를 정의하고 기본 우선 순위가 있기 때문에 연산자 우선 순위를 변경할 수 있다고 생각하지 않습니다. 기존 기능을 덮어 쓸 수 없습니다.
xnor

다시 64로 바꾼 후 44 바이트를 셉니다.
Leaky Nun

당신이 (`g`3)아니라고 생각합니다 (3`g`).
Anders Kaseorg 2016 년

10

Pyth, 25 바이트

M?H.UgbtH*G]3^3Gug3tG64 4

첫 번째 부분 M?H.UgbtH*G]3^3G은 방법을 정의합니다 g(G,H) = u(3,G,H+1).

첫 번째 부분을 테스트하려면 다음 사항을 확인 7625597484987=u(3,3,2)=g(3,1): g3 1.

두 번째 부분 ug3tG64 4은 64 번 부터 시작하여 64 번 r0 = 4계산 rn = u(3,3,r(n-1)) = g(3,r(n-1))하여 최종 값을 출력합니다 ( 혼란을 피하기 위해 r선택됨 g).

이 부분을 테스트하려면 r0=2다음을 시작한 다음 계산 r1하십시오 ug3tG1 2.


g (G, H) = u (3, G, H + 1)이면 r (n) = u (3, 3, r (n − 1)) = g (3, r (n-1)이어야합니다. )-1), g (3, r (n-1))이 아님. 나는 당신의 코드가 맞다고 생각하지만 당신의 설명에는-1이 빠져 있습니다.
Anders Kaseorg

당신은 unoffsetted U 인수 (사용하여 바이트를 저장할 수 있습니다 ^3*3, tGG), 그리고 또 다른 바이트를 .UgbtH*G]3e.ugNtHG1.
Anders Kaseorg 2016 년

두 번째 바이트를 저장하는 다른 방법은 *G]3ShG입니다.
Anders Kaseorg 2016 년

8

Sesos , 30 바이트

0000000: 286997 2449f0 6f5d10 07f83a 06fffa f941bb ee1f33  (i.$I.o]...:....A...3
0000015: 065333 07dd3e 769c7b                              .S3..>v.{

분해

set numout
add 4
rwd 2
add 64
jmp
    sub 1
    fwd 3
    add 3
    rwd 1
    add 1
    jmp
        sub 1
        jmp
            fwd 1
            jmp
                jmp
                    sub 1
                    fwd 1
                    add 1
                    rwd 1
                jnz
                rwd 1
                jmp
                    sub 1
                    fwd 3
                    add 1
                    rwd 3
                jnz
                fwd 3
                jmp
                    sub 1
                    rwd 2
                    add 1
                    rwd 1
                    add 1
                    fwd 3
                jnz
                rwd 1
                sub 1
            jnz
            rwd 1
            jmp
                sub 1
            jnz
            add 1
            rwd 1
            sub 1
        jnz
        fwd 1
        jmp
            sub 1
            rwd 1
            add 3
            fwd 1
        jnz
        rwd 2
    jnz
    rwd 1
jnz
fwd 2
put

또는 Brainfuck 표기법에서 :

++++<<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[->>>+++<+[-[>[[->+<]<[->>>+<<<]>>>[-<<+<+>>>]<-]<[-]+<-]>[-<+++>]<<]<]>>.

테스팅

계산할 U를 (3, N , U가 (3, N , ... U (3, N , m ) ...))와 K 중첩 호출 u는 처음 세 교체 add지시를 add 4,는 add 64, add 3add m, add k,는 add n각각. Sesos는 선형 시간보다 빠르게 숫자를 작성할 수 없으므로 실제로 u (3, 2, 2) = 27, u (3, 5, 1) = 243 및 u (3, 1 ) 과 같은 작은 값으로 제한됩니다 , u (3, 1,… u (3, 1, m )…)) = 3.


당신은 대체 할 수 [-],EOF이기 때문이다 0.
mbomb007

6

자바 스크립트 (ES7), 63 바이트

u=(n,m)=>n>1&m>1?u(u(n-1,m),m-1):3**n
g=n=>n?u(3,g(n-1)):4
g(64)

@AndersKaseorg Ugh, 그 경우 나는 그 변화를 되돌릴 수도 있습니다.
Neil

스택 오버플로가 발생하여 재귀 패턴을 다시 확인해야 할 수 있습니다.
NodeNodeNode

이것은 단순한 ES7이 아닙니다. 이것은 무한한 ES7입니다 (ES7의 가상 변형이지만 bignum을 사용하여 무한히 Oracle을 수행 할 수 있으며 / # xE ^와 함께 십진수를 축약 형으로 사용함).
user75200

5

Brachylog , 57 바이트

4:64:1iw
:3{[1:N],3:N^.|t1,3.|hM:1-X,?t:1-:Mr:2&:Xr:2&.}.

입력 또는 출력이 없을 것으로 예상하고 결과를에 씁니다 STDOUT. 한 지점에서 스택 오버플로가 발생합니다.

작은 값 (예를 들어,이 작품이 있는지 확인합니다 u(3,3,2)) 당신이를 대체 할 수 4의 값으로 m하고 641.

설명

이것은 기본적으로 설명 된 숫자 계산 방법의 간단한 구현입니다.

  • 주요 술어 :

    4:64:1i                    Call Predicate 1 64 times with 4 as initial input (the second
                               call takes the output of the first as input, etc. 64 times).
           w                   Write the final output to STDOUT
    
  • 술어 1 :

    :3{...}.                   Call predicate 2 with input [Input, 3]. Its output is the 
                               output of predicate 1.
    
  • 술부 2 :

    [1:N],                     M = 1
          3:N^.                Output = 3^N
    |                          Or
    t1,                        N = 1
       3.                      Output = 3
    |                          Or
    hM:1-X,                    X is M - 1
           ?t:1-:Mr:2&         Unify an implicit variable with u(3,N-1,M)
                      :Xr:2&.  Unify Output with u(3,u(3,N-1,M),X)
    

5

카라멜 , 38 바이트

(64 ((f->(f,1)),(n f->(3 (n f))),3) 4)

이것은 람다 미적분학 표현 64 (λ m . mf . λ n . n f 1) (λ n . λ f . 3 ( n f )) 3) 4의 구문 설탕이며 , 여기서 모든 숫자는 교회 로 표시됩니다 숫자 .


(n f->3 (n f))읽어서는 안 n-1됩니까?
Leaky Nun

@LeakyNun No. (n f->3 (n f))교회 숫자 에서 3을 곱하는 함수입니다 .
Anders Kaseorg 2016 년

2
이 도전은 람다 미적분학에서 지나치게 단순 해 보입니다. 왜?
고양이

3

프롤로그 (SWIPL), 129/137 바이트

g(1,R):-u(3,4,R).
g(L,R):-M is L-1,g(M,P),u(3,P,R).
u(N,1,R):-R is 3**N.
u(1,_,3).
u(N,M,R):-K is N-1,L is M-1,u(K,M,Y),u(Y,L,R).

Graham의 숫자를 출력하려면 다음을 쿼리하십시오 g(64,G).(이 쿼리의 8 바이트를 계산할 경우 길이는 137 바이트).

?- g(64, G).
ERROR: Out of local stack

그러나 예상대로, 이것은 스택이 부족합니다.

테스트

?- u(3, 2, X).
X = 7625597484987

역 추적으로 인해 스택이 부족합니다.

?- u(3, 2, X).
X = 7625597484987 ;
ERROR: Out of local stack

언 골프

ungolfed 버전은 3이 아닌 일반적인 위쪽 화살표 표기법을 추가하고 잘라 내기 및 검사를 사용하여 역 추적 및 정의되지 않은 상황을 피합니다.

% up-arrow notation
u(X, 1, _M, X) :- !.
u(X, N, 1, R) :-
    R is X**N, !.
u(X, N, M, R) :-
    N > 1,
    M > 1,
    N1 is N - 1,
    M1 is M - 1,
    u(X, N1, M, R1),
    u(X, R1, M1, R).

% graham's number
g(1,R) :- u(3, 3, 4, R), !.
g(L,R) :-
    L > 1,
    L1 is L - 1,
    g(L1,G1),
    u(3, G1, R).

64코드의 어느 곳에도 숫자가 없어 어떻게 처리 했 습니까?
Leaky Nun

@LeakyNun 명확히하기 위해 편집했습니다. 보다 나은?
SQB

그런 다음 코드와 바이트 수를 추가하십시오.
Leaky Nun

3

C, 161 바이트

u(int a, int b){if(a==1)return 3;if(b==1)return pow(3,a);return u(u(a-1,b),b-1);}
g(int a){if(a==1)return u(3,4);return u(3,g(a-1));}
main(){printf("%d",g(64));}

편집 : 탭과 줄 바꿈을 제거하여 11 바이트를 절약했습니다. 편집 : thx auhmann은 다른 바이트를 저장하고 내 프로그램을 수정했습니다.


1
g(int a){if(a==1)return u(3,4);return g(a-1);}전혀 사용되지 않아서 제거 할 수 있습니다 ... 아니면 무언가를 잊고 있습니까?
auhmaan 2016 년

@auhmaan 죄송합니다, 그 숫자를 테스트에 사용하고 다시 변경하는 것을 잊었습니다. 감사!!
thepiercingarrow 2016 년

당신은 return g(a-1)해야한다 return u(3,g(a-1)).
Anders Kaseorg 2016 년

1
나는 적절한 대답을 해야하는지 이것에 대해 언급 해야할지 모르겠지만, 당신은 이것을 실현 함으로써이 솔루션을 114 바이트로 아주 쉽게 얻을 수 있습니다 : 함수 사이의 줄 바꿈은 생략 할 수 있습니다. 모든 인수에 대한 유형을 생략하면 기본적으로 int로 설정됩니다 (K & R 생각). 이와 같은 문장을 중첩 된 삼항 연산으로 작성할 수 있습니다. 코드 :u(a,b){return a<2?3:b<2?pow(3,a):u(u(a-1,b),b-1);}g(a){return a<2?u(3,4):u(3,g(a-1));}main(){printf("%d",g(64));}
algmyr

@algmyr 와우 놀라운! 당신은 당신의 자신의 답변 XD를 게시해야합니다.
thepiercingarrow

2

수학, 59 바이트

n_ ±1:=3^n
1 ±m_:=3
n_ ±m_:=((n-1)±m)±(m-1)
Nest[3±#&,4,64]

±ISO 8859-1로 인코딩 된 경우 1 바이트 만 필요한 정의되지 않은 접두사 연산자 를 사용합니다 . 자세한 내용은 @Martin의 게시물 을 참조하십시오. Mathematica 함수는 인수에 대한 패턴 일치를 지원하므로 두 가지 기본 사례를 별도로 정의 할 수 있습니다.


1
Mathematica는 언제부터 ISO 8859-1을 사용 했습니까?
Leaky Nun

n_ ±m_:=Nest[#±(m-1)&,3,n]
Leaky Nun

2

C, 114 109 바이트

@ thepiercingarrow ( link ) 의 답변을 기반으로 나는 대답을 꽤 많이 골랐습니다. 대부분의 비용 절감은 K & R 스타일 함수를 수행 할 때 인수의 기본 입력을 남용하고 if 문을 삼항 연산자로 대체하여 발생합니다. 가독성을 위해 기능 사이에 선택적 개행을 추가했습니다.

@LeakyNun 덕분에 109로 향상되었습니다.

u(a,b){return a<2?3:b<2?pow(3,a):u(u(a-1,b),b-1);}
g(a){return u(3,a<2?4:g(a-1));}
main(){printf("%d",g(64));}

g(a){return u(3,a<2?4:g(a-1));}
Leaky Nun

@LeakyNun 정말 좋은 것입니다. 감사.
algmyr

1

파이썬, 85 바이트

v=lambda n,m:n*m and v(v(n-1,m)-1,m-1)or 3**-~n
g=lambda n=63:v(2,n and g(n-1)-1or 3)

v기능에서 볼 수있는 것과 같은 함수를 정의 데니스의 대답 : v(n,m) = u(3,n+1,m+1). 이 g함수는 기존 반복의 색인이없는 0 버전입니다 g(0) = v(2,3), g(n) = v(2,g(n-1)). 따라서 g(63)그레이엄의 숫자입니다. 함수 n매개 변수의 기본값을로 설정하면 매개 변수 없이 호출하여 필요한 출력을 얻을 수 있으므로 입력이없는 함수 제출에 대한 요구 사항을 충족합니다.g63g()

검증 v(2,1) = u(3,3,2)v(4,0) = u(3,5,1)온라인 테스트 케이스를 : 파이썬 2 , 파이썬 (3)


1
확인하기는 어렵지만 기능이 작동하지 않는 g것 같습니다. 안 v(2,n-1)g(n-1)또는 비슷한?
Dennis

@Dennis Good catch. 내가 고칠 게
Mego

실제로 u와 사이의 오프셋은 v이어야합니다 g(n-1)-1.
Anders Kaseorg

@AndersKaseorg 졸린 동안 프로그래밍을해서는 안됩니다. 나는 이것을 며칠마다 다시 배워야합니다.
Mego

@AndersKaseorg 향후에 제안한 개선 / 버그 수정에서 실수를 수정하더라도 다른 사람의 제출물을 편집하지 마십시오.
Mego

1

Dyalog APL, 41 바이트

u←{1=⍺:3⋄1=⍵:3*⍺⋄(⍵∇⍨⍺-1)∇⍵-1}
3u 3u⍣64⊣4

테스트 사례 :

      3u 2
7625597484987

당신은 1=⍺:3⋄1=⍵:3*⍺그냥 1=⍵:3*⍺( 3=3*1) 로 변환 할 수 있어야합니다
Zacharý


0

J, 107 바이트

u=:4 :0
if.y=1 do.3^x
elseif.x=1 do.3
elseif.1 do.x:(y u~<:x)u<:y
end.
)
(g=:(3 u 4[[)`(3 u$:@<:)@.(1&<))64

나는 u의제 로 전환 하려고 노력하고 있지만 지금은 그렇게 할 것입니다.


무언가 u=:3^[`[:(3$:])/[#<:@]@.*@](테스트되지 않음)
Leaky Nun

0

F 번호, 111 108 바이트

편집하다

Graham의 수를 계산하기 위해 아래 함수를 사용하고 있습니다.

let rec u=function|b,1->int<|3I**b|1,c->3|b,c->u(u(b-1,c),c-1)
and g=function|1->u(3.,4.)|a->u(3.,g (a-1))
g 63

다음은 이전 답변입니다.

꽤 직설적 인. u함수 의 정의 일뿐입니다 .

let rec u=function|a,b,1->a**b|a,1.,c->a|a,b,c->u(a,u(a,b-1.,c),c-1)

용법:

u(3.,3.,2)
val it : float = 7.625597485e+12

3을 a의 값으로 가정하면 60으로 줄일 수 있습니다.

let rec u=function|b,1->3.**b|1.,c->3.|b,c->u(u(b-1.,c),c-1)

용법:

u(3.,2)
val it : float = 7.625597485e+12

도전은 아닌 그레이엄의 번호를 작성하는 것입니다 u. 물론 u3으로 고정 된 첫 번째 인수가 있거나없는 것과 같은 필요한 모든 중간 함수를 포함 할 수 있습니다.
Anders Kaseorg

@AndersKaseorg가 편집했습니다. 감사합니다. 내 이전 의견이 사라진 것 같습니다.
asibahi

0

R, 154 142 128 126 118 바이트

u=function(n,b)return(if(n&!b)1 else if(n)u(n-1,u(n,b-1))else 3*b)
g=function(x)return(u(if(x-1)g(x-1)else 4,3))
g(64)

나는이 재귀 함수에 대한 Wikipedia 정의를 사용했다. 왜냐하면 이상한 이유로 제안 된 것이 작동하지 않았기 때문이다.

UPD : Leaky Nun 의 팁 덕분에 12 + 14 = 26 바이트가 줄었습니다 . 이전 버전은 부피가 크고 덜 효율적이었습니다.

u=function(n,b)if(n==0)return(3*b)else if(n>0&b==0)return(1)else return(u(n-1,u(n,b-1)))
g=function(x)if(x==1)return(u(4,3))else return(u(g(x-1),3))

UPD : x <0이 절대로 공급되지 않기 때문에 "if (x == 0)"대신 "if (x)"대신 독창적 인 대체로 인해 2 + 6 + 2 바이트 (다시, Leaky Nun에 대한 kudos )를 줄였습니다. 기능 ... 맞지?


@LeakyNun 감사합니다. 답변을 승인으로 업데이트했습니다.
Andreï Kostyrka

잠깐만 .. 오늘은 코드 골프의 첫날이다. 배울 것이 많다!
Andreï Kostyrka

채팅에 초대되었습니다 .
Leaky Nun

더 골프, 개선을 참조하십시오.
Andreï Kostyrka

Ta-dam은 완료된 u것과 동일한 키로 기능 을 변경하고 g6 바이트를 더 절약했습니다.
Andreï Kostyrka

0

PHP, 114 바이트

줄 바꿈을 무시하십시오. 그들은 가독성을 위해서만 사용됩니다.

function u($n,$m){return$m>1&$n>1?u(u($n-1,$m),$m-1):3**$n;}
function g($x){return u(3,$x>1?g($x-1):4);}
echo g(63);

두 번째 경우를 첫 번째 경우에 통합 할 수 있습니다 : for n=1, 3^nequals 3.
이것은 내가 볼 수있는 한 기존의 모든 답변에 몇 바이트를 절약합니다. 내 두 바이트를 저장

이전 버전, 62 + 43 + 11 = 116 바이트

function u($n,$m){return$m>1?$n>1?u(u($n-1,$m),$m-1):3:3**$n;}

삼항에 대한 PHP의 왼쪽 연관성은 괄호 또는 특정 순서의 테스트가 필요합니다.
이것은 괄호로 묶은 표현식에 2 바이트를 절약했습니다.


반복적 인 접근 방식이 있을 수 있는데, 이는 추가 골프를 허용
있지만 지금은 시간을 할 수 없습니다.


내가 Sesos를 알았거나 그것을 배우고 지금 번역 할 시간이 있었기를 바랍니다
Titus

@Leaky Nun : 루프와 덧셈으로 만 분류했습니다. Sesos에서 한 셀의 값을 다른 셀에 추가하는 방법이 있습니까?
Titus

@AndersKaseorg : 당신 말이 맞을 것입니다 ... 그 알고리즘을 보면서 눈알에 물집이 생겼습니다. 곧 다시 볼 것입니다.
Titus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.