태그 보관물: kolmogorov-complexity

kolmogorov-complexity

2가없는 표시 번호 나타나지 않아야합니다. 예를 들어, 숫자

1부터 100까지 (순서대로) 숫자를 표시하지만 순서 2에는 숫자 2가 나타나지 않아야합니다. 예를 들어, 숫자 2 ( 2) 또는 23 ( 23)은 순서에 있지 않아야합니다.

다음은 줄 바꿈으로 숫자를 구분하는 예제 출력입니다.

1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100



답변

05AB1E , 6 바이트

тLʒ2å_

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

설명

тL       # push [1 ... 100]
  ʒ      # filter, keep only elements that
   2å_   # does not contain 2


답변

택시 , 2399 2391 2370 1783 1773 1706 바이트

-8 바이트는 Sunny Side Park에 특정 승객을 영원히 떠나는 대신 Riverview Bridge에서 버리는 것이 좋습니다. 아,이 얼마나 아름다운 마을입니까.

내가 멍청하게 남긴 의견을 가져 오기위한 -21 바이트.

-587 바이트는 단순히 내가 갔던 전체 방식을 변경하여 (명확히 짧은 방법은 산술입니다. [17, 27, 37, 47, …]을 9로 정수 나누면 시퀀스가 ​​생성되지만 건너 뛰어야합니다. 20은 당신입니다.)

공백없이 따옴표로 묶은 문자열에는 따옴표가 필요하지 않습니다. (Jo King 감사합니다!)

줄 바꿈은 선택 사항임을 인식하기 위해 -67 바이트입니다.

17 is waiting at Starchild Numerology.Go to Starchild Numerology:w 1 l 2 r 1 l 1 l 2 l.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 2 r.[B]Pickup a passenger going to Cyclone.Pickup a passenger going to Divide and Conquer.9 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.Pickup a passenger going to Trunkers.Go to Trunkers:e 1 r 3 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:e 1 r 1 r.Pickup a passenger going to Post Office.\n is waiting at Writer's Depot.Go to Writer's Depot:n 5 l 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.Go to Cyclone:s 1 r 1 l 2 r.Pickup a passenger going to Addition Alley.Pickup a passenger going to Equal's Corner.177 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan C if no one is waiting.Pickup a passenger going to Sunny Skies Park.100 is waiting at Starchild Numerology.Switch to plan D.[C]10 is waiting at Starchild Numerology.[D]Go to Starchild Numerology:n 1 r.Pickup a passenger going to Addition Alley.Go to Sunny Skies Park:w 1 r.Go to Addition Alley:n 1 r 1 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 1 l.Pickup a passenger going to Cyclone.Pickup a passenger going to Equal's Corner.917 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan E if no one is waiting.Switch to plan F.[E]Go to Go More:n 1 l.Go to Cyclone:w 1 r.Switch to plan B.[F]

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

이것은 곧 나에게 어떤 코드 골프 대회에서도 이길 수는 없지만 esolang Taxi를 사용해보기로 결정했습니다.

Taxi는 가상의 Townsburg 타운의 여러 정거장에서 승객을 태우고 내려서 모든 프로그래밍을 수행하는 esolang입니다. 물론 택시에는 때때로 가스가 고갈되기 때문에 주유소를 자주 방문하고 요금으로받는 크레딧을 사용하여 지불해야합니다 (이 경우에는 가스를 위해 중지하면됩니다)-More More 루프 반복 당 한 번!).

나는 그런 같은 방향의 문구를 수정과 파일 크기를 조금 줄 몇 가지 트릭, 사용 east 1st left, 2nd right등을 e 1 l 2 r, 단어 제거 the는 선택 사항이며, 내 모든 대상을 향한 가장 복잡한 경로 (반드시 최단 경로)를 사용합니다.

나는 원래 생각해 낸 것보다 더 짧은 솔루션을 싫어합니다. 여기이 솔루션은 작업을 수행하는보다 일반적인 방법으로 원하는 곳에서 시작하고 끝낼 수 있습니다. 여기 전체가 있습니다.

2245 바이트 (일반적인 방식)

1 is waiting at Starchild Numerology.Go to Starchild Numerology:w 1 l 2 r 1 l 1 l 2 l.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 2 r.[B]Pickup a passenger going to Addition Alley.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:n 2 r 2 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 5 l 2 l.Pickup a passenger going to Chop Suey.Go to Zoom Zoom:n.0 is waiting at Writer's Depot.Go to Writer's Depot:w.Pickup a passenger going to Narrow Path Park.Go to Narrow Path Park:n 3 r 1 l 1 r.Go to Chop Suey:e 1 r 1 l 1 r.[C]Switch to plan E if no one is waiting.Pickup a passenger going to Crime Lab.2 is waiting at Writer's Depot.Go to Writer's Depot:n 1 l 3 l.Pickup a passenger going to Crime Lab.Go to Crime Lab:n 3 r 2 r.Switch to plan D if no one is waiting.Pickup a passenger going to KonKat's.Go to Narrow Path Park:n 5 l.Pickup a passenger going to KonKat's.Go to KonKat's:e 1 r.Pickup a passenger going to Narrow Path Park.Go to Narrow Path Park:n 2 l.Go to Chop Suey:e 1 r 1 l 1 r.Switch to plan C.[D]Go to Chop Suey:n 5 r 1 l.Switch to plan C.[E]Go to Narrow Path Park:n 1 l 1 r 1 l.Pickup a passenger going to Crime Lab.0 is waiting at Writer's Depot.Go to Writer's Depot:w 1 l 1 r 2 l.1 is waiting at Starchild Numerology.Pickup a passenger going to Crime Lab.Go to Crime Lab:n 3 r 2 r.Switch to plan F if no one is waiting.Pickup a passenger going to Riverview Bridge.Go to Cyclone:n 4 l 2 l.Pickup a passenger going to Post Office.Go to Riverview Bridge:n 2 r.\n is waiting at Writer's Depot.Go to Writer's Depot:w 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.Go to Starchild Numerology:s 1 r 1 l 1 l 2 l.Switch to plan G.[F]Go to Cyclone:s 1 r 1 l 2 r.Pickup a passenger going to Riverview Bridge.Go to Riverview Bridge:n 2 r.Go to Starchild Numerology:w 2 l 3 l 2 r.[G]Pickup a passenger going to Addition Alley.Go to Addition Alley:e 1 l 2 r 3 r 1 r.Pickup a passenger going to Magic Eight.101 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.Pickup a passenger going to Magic Eight.Go to Magic Eight:w 1 r 2 r 1 r.Switch to plan H if no one is waiting.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 2 r.Switch to plan B.[H]

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

그리고 거대 부정 행위가 허용된다면, 이것은 마지막 두 가지 중 하나보다 훨씬 짧습니다.

456 바이트 (전체적으로 부정 행위)

1\n3\n4\n5\n6\n7\n8\n9\n10\n11\n13\n14\n15\n16\n17\n18\n19\n30\n31\n33\n34\n35\n36\n37\n38\n39\n40\n41\n43\n44\n45\n46\n47\n48\n49\n50\n51\n53\n54\n55\n56\n57\n58\n59\n60\n61\n63\n64\n65\n66\n67\n68\n69\n70\n71\n73\n74\n75\n76\n77\n78\n79\n80\n81\n83\n84\n85\n86\n87\n88\n89\n90\n91\n93\n94\n95\n96\n97\n98\n99\n100 is waiting at Writer's Depot.Go to Writer's Depot:w 1 l 2 r 1 l 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

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


답변

파이썬 2 , 39 바이트

k=7
exec"k+=10;print(k>177)*10+k/9;"*81

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

산술 연산을 사용하여 2없이 숫자를 생성합니다.

이 값 k은 산술 진행을 따릅니다. 17, 27, 37, 47, ...9로 나눈 값 1,3,4,5,6,7,8,9,10,11,13,14,...은 2로 끝나지 않는 숫자를 계산합니다. 20에서 29까지 건너 뛰기 위해 출력은 특정 임계 값을지나 10 씩 증가합니다.


답변

자바 스크립트 (ES6), 43 바이트

시퀀스를 쉼표로 구분 된 문자열로 반환합니다.

f=(n=98)=>n?f(n-=n-27?n%10?1:2:11)+[,n+3]:1

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

왜 이런 식으로합니까?

우리는

1

에서

100

까지 반복 하고 각 숫자를 테스트 /2/.test(n)하여 다소 간결한 진술입니다. 그러나이 시나리오에서는와 같은 빈 항목을 처리해야 (/2/.test(n)?'':...)하므로 몇 바이트가 더 추가됩니다.

예를 들어 45 바이트에서 작동 합니다 .

f=(n=1)=>n>99?n:(/2/.test(n)?'':[n,,])+f(n+1)

또는 선행 쉼표가 허용되는 경우 44 바이트 동안 작동합니다 .

f=(n=100)=>n?f(n-1)+(/2/.test(n)?'':[,n]):''

대체로 (그렇지 않으면 입증 될 때까지), 2 를 포함하는 n의 모든 값을 바로 건너 뛰는 것이 더 짧은 것으로 판명되었습니다 .

n

2

댓글

f =                 // f is a recursive function taking:
(n = 98) =>         // n = counter, initialized to 98
  n ?               // if n is not equal to 0:
    f(              //   prepend the result of a recursive call:
      n -=          //     update n:
        n - 27 ?    //       if n is not equal to 27:
          n % 10 ?  //         if n is not a multiple of 10:
            1       //           subtract 1 from n
          :         //         else:
            2       //           subtract 2 from n
        :           //       else (n = 27):
          11        //         subtract 11 from n (--> 16)
    ) +             //   end of recursive call
    [, n + 3]       //   append a comma, followed by n + 3; notice that this is the value
                    //   of n *after* it was updated for the recursive call; at the first
                    //   iteration, we have: n = 98 -> updated to 97 -> n + 3 = 100
  :                 // else (n = 0):
    1               //   output the first term '1' and stop recursion


답변

R , 19 바이트

grep(2,1:100,inv=T)

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


답변

파이썬 2 , 44 바이트

print[n for n in range(1,101)if'2'not in`n`]

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


답변

펄 6 , 22 바이트

put grep {!/2/},1..100

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

코드 블록을 수행하는 더 좋은 방법이 있지만 일치를 반전시키는 정규식 부사를 찾을 수 없습니다.