콜 모고 로프 매니아


32

문자열 s 의 Kolmogorov 복잡도 는 s 를 출력 하는 가장 짧은 프로그램 P 의 길이로 정의됩니다 . P의 길이가 s의 길이보다 짧은 경우, s는 압축 가능 하다고 말하며 , 그렇지 않으면 s는 압축 불가능 합니다. 대부분의 문자열은 압축 할 수 없습니다 ...

이 문자열을 출력하는 가장 짧은 프로그램을 작성하십시오 (공백없이 및 줄 바꿈 없음).

d9 a6 b6 33 56 a7 95 4b 29 b0 ac 7f 2a aa 6d 19 b8 4b 4c f8 b6 2a ac 95 
a1 4b 4e a5 9d b3 e7 c9 4c 49 59 ec 94 b3 aa 6c 93 8f 11 5a 4d 39 75 82 
ec ea 24 cc d3 2d c3 93 38 4e b7 a6 0d d2 b5 37 23 54 ad 1b 79 aa 6e 49 
55 52 94 5a a7 3a 6a e9 e4 52 cd 2d 79 ad c6 12 b5 99 5b b4 76 51 17 4e 
94 f3 9a a2 e7 15 6a 55 14 4d 4e 4a a3 5c 2f ab 63 cc b5 a6 a4 92 96 8a 
2e c3 d8 88 9b 8c a9 16 f5 33 22 5b a2 e2 cc 1b 27 d4 e8 db 17 a4 39 85 
ca aa 5b 4f 36 24 d3 c6 f6 94 ad d7 0f 71 24 e1 b1 c5 ef 65 35 6c 8d d7 
1a 87 1e 25 df 5d c0 13 b2 6f 5a 57 28 98 bd 41 66 04 ed a2 52 c9 ac 83 
b3 6c 56 7e d1 c6 cc 53 4a 62 c5 59 a9 b2 d4 af 22 a5 a9 f4 b2 99 23 32 
f8 fb ae 48 6a 8a 9a b5 46 7a 36 59 9f 92 d3 25 b5 19 bd 8a 4a 49 62 a5 
e4 59 fb e5 ba a2 35 dd a9 36 1d a9 c9 69 89 77 6a b2 34 2d 1d 22 61 c5 
c2 66 1c e2 76 74 52 a5 d9 84 b9 8a a6 b5 14 ec 29 58 b2 bc 96 16 16 48 
f5 c5 bd 2f 32 1b 3d 4f 4b 2e b2 6b 9a d9 32 a4 4b 5c bc 92 b7 b3 26 39 
fa 42 2d 64 ed 1a 79 49 4c a3 b7 85 b2 a6 e2 8c d9 55 90 e1 a8 87 4b 60 
a6 e1 ba c4 bb ec 32 39 76 90 a6 b4 c6 65 79 61 91 aa 3d 54 b7 18 3d 15 
4b 06 db 30 8a 4d 4a a1 35 75 5d 3b d9 98 ac 55 5b 10 dd b3 e2 cc f1 5e 
b3 2b 53 90 b6 ee 2b ac 8f 88 8d 95 5a 75 df 59 2d 1c 5a 4c e8 f4 ea 48 
b9 56 de a0 92 91 a9 15 4c 55 d5 e9 3a 76 8e 04 ba e7 b2 aa e9 ab 2a d6 
23 33 45 3d c4 e9 52 e3 6a 47 50 ba af e4 e5 91 a3 14 63 95 26 b3 8b 4c 
bc aa 5a 92 7a ab ad a6 db 53 2e 97 06 6d ba 3a 66 49 4d 95 d7 65 c2 aa 
c3 1a 92 93 3f ca c2 6c 2b 37 55 13 c9 88 4a 5c 62 6b a6 ae cc de 72 94 

출력은 다음과 같아야합니다.

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4e...7294

참고 : 사용자 입력, 웹 액세스 또는 라이브러리는 허용되지 않습니다 (출력 인쇄에 필요한 입력 제외).

편집 I : 시퀀스가 무작위로 보이지만 약간 의 소수를 처리 할 때 압축률이 높은 것으로 밝혀졌습니다 ...

편집 II : 잘 했어요! 다음 시간에 답변을 검토 한 후 현상금을 지정합니다. 이것이 어떻게 해결할 수 있는지에 대한 나의 생각입니다.

  1. 데이터를 압축하려고하면 멀리 가지 않습니다 ...
  2. 인터넷에서 (잘 알려진?) 온라인 백과 사전의 정수 시퀀스 (OEIS)를 찾을 수 있습니다.
  3. 첫 16 진 숫자 d9, a6, b6, 33, ...(또는 10 진수 표현)를 시도해 도 결과가 없습니다.
  4. 그러나 숫자를 이진 ( 1,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0)으로 변환하고 OEIS에서 검색 하면이 결과가 나타납니다 .
  5. Claudiu가 언급했듯이, 나는 또한 질문에 약간의 힌트를 주었습니다 (위의 편집 I) ... :-)

승자는 다음과 같습니다. Peter Taylor (GolfScript, 50), Claudiu (Python, 92)에 대해 특별히 언급 한 첫 번째 인물.


2
다른 komogorov-complexity 질문 보다 이것이 더 흥미로운 가요?
Doorknob

2
@Doorknob : 아마도 아무것도 ... 적어도 누군가가 답변을 게시 할 때까지 :-)
Marzio De Biasi

5
이것은 "상수를 추측"의 게임으로되어 있습니까?
Peter Taylor

7
해결책을주지 마십시오! 사람들은 그것에 노력하고 있습니다 :-)
Mau

3
대회는 두 부분으로 이루어져야한다고 생각합니다. 첫 번째 부분은 답을 찾은 사람들에게 수여되는 상입니다. 두 번째 부분은 코드를 압축하고 가장 작은 것을 생성하는 방법을 실제로 알고있는 사람들에게 수여되는 상입니다. 지금은 "나의 알고리즘 추측"질문에 더 가깝습니다. 저와 같은 멍청이는 제외하고 실제 코드 골프 프로 (나도 아니에요)와 APL 및 다른 간결한 언어를 아는 사람들 (아직 나도 아님) ).

답변:


11

GolfScript (50 바이트)

$ wc -c codegolf24909.min.gs 
50 codegolf24909.min.gs
$ md5sum codegolf24909.min.gs 
ce652060039fba071d17333a1199fd72  codegolf24909.min.gs
$ time golfscript.rb codegolf24909.min.gs 
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294

real    365m11.938s
user    364m45.620s
sys     0m6.520s

이제 다른 모든 사람들이 자신의 코드를 공개하고 있기 때문에 난독 화에 대한 OP의 요청을 선취합니다.

38200,{:x,{)x\%!},,2=},4/{3\{2&!!1$++}/.57>39*+}%+

개요 해부

  • N = 38200 인 N 보다 작은 소수를 계산 합니다. 첫 번째 4032 소수는 다음과 같습니다.38200,{:x,{)x\%!},,2=},
  • 16 진수 변환으로 소수당 1 비트를 원하므로 4 개 그룹으로 나눕니다. 4/
  • 각 그룹에 대해 각 소수 p를에 매핑 p&2 != 0하고 밑을 2에서 16으로 변환합니다. {3\{2&!!1$++}/.57>39*+}%(이것은 흥미로운 트릭입니다.)
  • 이제 ASCII 값의 배열과 stdin의 빈 문자열이 있습니다. 출력을 위해 단일 문자열을 얻기 위해 연결하십시오.+

기본 변환의 더 자세한 해부

빈 문자열과 소수 목록을 보유한 스택이 주어지면 두 가지 변환을 수행해야합니다.

  1. 각 소수를 2 또는 3 (mod 4)과 같은지 나타내는 비트로 변환
  2. 비트를 16 진수로 변환

1을 수행하는 데 똑같이 긴 방법이 많이 있습니다. 예 :

{4%1>}%
{4%2/}%
{2/1&}%
{2/2%}%
{2&!!}%

또는

{2&}% followed by a 2/ after the base conversion

2의 경우 명백한 접근 방식은

2base 16base{'0123456789abcdef'=}%+

그러나 기본은 긴 단어이며 16 = 2 4 이므로 몇 개의 문자를 쉽게 저장할 수 있습니다.

4/{2base'0123456789abcdef'=}%+

이제 가장 분명한 낭비는 그 줄에 헌신 한 18 개의 문자입니다. 우리는 숫자에서 ASCII 코드까지의 함수를 원합니다. 우리는 매핑 할 0'0' = 48, ..., 9'9' = 57, 10'a' = 97, ... 15'f' = 102.

4/{2base.9>39*+48+}%+

그러나 이제 금지령을 믹스에 던져 넣습니다 base. 직접 구현해야합니다. 명백한 구현 (이 방향으로 쉬운 방법)은 k base접힘 {\k*+}*입니다. 약간 더 긴 대안은 간단한 반복이며, 기본 사례가 필요합니다 0\{\k*+}/. 자료 2는 약간 특별하다 : 1$++에 해당 \2*+같은 길이, 그리고 그 접근 방식을 촬영했습니다.

둘 다 5-char보다 길지만 2base이제는 값을 반복하므로 파트 1을 끌어 단일 루프를 가질 수 있습니다. 우리는 교체

{2&!!}%4/{2base.9>39*+48+}%+

4/{{2&!!1$++}*.9>39*+48+}%+

좋은 1 문자 절약 또는

4/{0\{2&!!1$++}/.9>39*+48+}%+

1 문자 손실.

그러나 1 문자 손실은 거꾸로 한 단계처럼 보이지만 0에 어떤 일이 발생하는지 고려하십시오. 16을 곱하고 기본 변환 출력에 추가됩니다. 마지막으로 출력에 16의 배수를 더하는 것입니다. 그래서 우리는 둘을

4/{3\{2&!!1$++}/.57>39*+}%+

합동 최단 및 보너스 영리함이 더 흥미로워집니다.


1
360 분! 꽤 오랜 시간입니다. 당신이 어떤 접근을했는지 궁금합니다. 내 시간은 1 분이 걸립니다
Claudiu

4
@Claudiu, 나는 그것을 훨씬 빨리 만들 수 있지만 약 5 문자를 추가 할 것입니다. 이것은 시간 제약이있는 코드 골프가 아닌 kolmogorov 복잡성 입니다.
피터 테일러

사용하면 얼마를 얻을 수 base있습니까? 다른 모든 솔루션은 동등한 것을 사용합니다 (광산 사용 hex, C 사용 printf("%x"), haskell 사용 showHex)
Claudiu

1
@Claudiu, 실제로 현재 사용중인 가장 좋은 방법은 base이 방법 보다 깁니다. 왜냐하면 나는 그것을 사용할 수 없다는 것을 분명히 한 후에 대부분의 최적화를 수행했기 때문입니다. base0에서 15 사이의 값을 제공하므로로 변환하려면 약간의 작업이 필요합니다 0-9a-f. 나는 base어느 시점에서 다시 방문 할 수 있지만 오늘 밤에는 사용하지 않을 수 있습니다.
피터 테일러

32

파이썬, 92 자

여기에 신사 숙녀 여러분, 코드 자체가 있습니다!

>>> code = "R=range;print hex(int(''.join(`i/2%2`for i in R(38198)if all(i%x for x in R(2,i))),2))[2:-1]"
>>> len(code)
92
>>> exec code
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294
>>> import hashlib; hashlib.sha256(code).hexdigest()
'60fa293bbe895f752dfe208b7b9e56cae4b0c8e4cdf7c5cf82bf7bab60af3db6'

Marzio는 " 약간 의 소수를 처리 할 때 압축률이 높은 것으로 판명되었다"고 말하면서 현명한 힌트를 남겼습니다 . "작은 비트"가 우연히 이탤릭체로되어 있지 않다고 확신했기 때문에 16 진 문자열을 비트로 변환하고 패턴을 찾으려고했습니다. 나는 처음에 그는 모든 소수를 비트로 표현하고 함께 연결한다고 생각했지만, 효과가 없었습니다. 그런 다음 몇 자릿수 만 취하거나 비트 문자열의 모든 0을 삭제하십시오 (아직 아니오). 어쩌면 처음 몇 소수의 최하위 비트 비트입니까? 좀 빠지는. 그러나 결국 나는 효과가있는 것을 발견했습니다. 첫 번째 많은 프라임에서 두 번째로 중요한 비트 비트입니다.

그래서 내 코드는 그렇게합니다 : 충분한 소수를 생성하고 각 비트의 두 번째 비트 ( i/2%2)를 가져 와서 이진 문자열로 연결 한 다음 base 10 ( int(..., 2))으로 변환 한 다음 base-16 ( hex(...))으로 변환하십시오.


1
큰! 저는 골프를 처음 코딩했지만 해쉬는 다른 사람들이 "어떻게해야하는지"를 발견하게하는 좋은 방법입니다. 나는 이틀을 기다린 후 현상금을 엽니 다 (신뢰에 대해 보상 할 것입니다).
Marzio De Biasi

5
@ MarzioDeBiasi : 물론 작동합니다! 또는 바운티가 마감되기 전날 보상을 주겠다고 말하면 더 좋을 것입니다. 승자가 자신의 답변을 공개하지 않으면 2 위 자리 승리 등 ... 왜 당신이 할 필요가 없을 때 신뢰에 의존 하는가? ?
Claudiu

hashlib의 코드가 계산되지 않은 이유는 무엇입니까? 출력을 생성하기 위해 코드가 실행되고 있지 않습니까?
Philcolbourn

2
@ philcolbourn : 코드에서 hashlib를 사용하지 않습니다. 내일 처음으로 이것을 게시했을 때 코드를 작성했음을 증명할 수 있도록 sha256 해시를 생성하는 것입니다. 내일 보자!
Claudiu

@Claudiu : 이제 어떻게 문제를 해결했는지 설명해야합니다! 잘 했어!
rubik

9

하스켈, 105

SHA1 해시 : a24bb0f4f8538c911eee59dfc2d459194ccb969c

산출:

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294

편집 : 코드 :

import Numeric;f(x:z)s=f[y|y<-z,0/=mod y x]$s*2+quot(mod x 4)2;f[]s=s;main=putStr$showHex(f[2..38198]0)""

인쇄 (putStr)를 제외하고 라이브러리 기능을 사용하지 않는 규칙을 놓쳤습니다. 기술적으로 기능하는 수학적 연산자는 허용된다고 가정합니다.


9

C, 136 개 116 109 103 문자

그럼 내 노력은 다음과 같습니다.

i;p;q;main(n){for(;n++,q<4032;){for(i=1;++i<n&&n%i;);if(i==n)p+=p+(n&2)/2,p=++q&3?p:printf("%x",p)*0;}}

MD5 hash = f638552ef987ca302d1b6ecbf0b50e66

1
printf여기에서 항상 0이 아닌 문자 수를 반환 하므로 하나의 문자를 저장 하는 !printf(...)대신 사용할 수 있습니다 printf(...)*0.
pastebin.com 슬래시 0mr8spkT

@ace * slaps forehead * 아, 왜 그렇게 생각하지 않습니까 ? 항상 감사합니다 에이스 :-) (MD5 해시와 일치해야하기 때문에 코드를 그대로 두십시오.)
squeamish ossifrage

7

JS, 764

이 문자열을 base64로 간주하면 기본이 아닌 64 버전을 사용하여 더 작은 버전을 가질 수 있습니다.

btoa("wÖºo­÷离÷ÛÖôiÎßÙ¦éÝ}oÎáÇüo­iÏyk^áæ¹õÖ÷{·=áÎ=ç×÷÷i®÷×^ZáÝýï6yÇÛw}swßÎo¶ºÑ×voûÛ~xiÝ[ïÖéî=çv÷Zk½Ú駽{vqÝïÖs­vo}å¶øï®u×¾÷÷õ¦¶{½yé®y×áîk~\Ùöëwoºkv÷¯Ùç7wÏ<õ¿kÝz÷Ûn[kg¶qÍ[Û·x{Ç[׶¸ßß9q¦å¾ß­¸ww:¯xi×{ÑþõÛµoW9yþ¹ßñ×{Õ¯;Õí¹uþ]sMwonå®{ÛÏ|mÞ5ë­8yÖ¶çg=iÏ7o~ç®ÞwW:qÎw᮶s}kÖöwÛf¹k×øoo}Û}öÇÛiî<é¯õ¦ùã®Úß®}õÿvw}¹o}mßá®=ëf¹{}}·¹m¦¶ß]kÝúÕÖ½sÞ½óÞûé¦ößÕݶëW9snºÕǶï®øçf¹wß8oßk¦ù×ÛÞ|ofÜ÷­z×®<9mÝßm[ÝÞá½onõ§}ßf¸á¾\mÏvo¶÷Û­ý}®6ÙÞ¸yÝZïÞ=áÆ·o¿9ofº{owÞy÷GµkÏ;á¾´k§µm§8m·ßmýï¯tk¦øs®¹ïÞµ÷VÝÞxo½|ÝÝyá½:u½ôñ®á¦µßùåÝÛwß|iÎyå½tuÖ÷{g^^o}çto§Ù¶ñÿ<ñßyå®ùuþ}ÙÝ\å®{Çøy®<oÞzuæ´÷oukÝyáÎyw½Ý®úñí8m§»of{ÖÙ§zÛ}÷ãÝs½çg·é®;çFÚi÷¸{uk}xëyÛ¦÷ñ¾mÆå¯ví¦iÖºu¾wÙï{Ó®m­Úë®=áßyw¾¹sfs}Z÷owÝ÷snÙ½ûçwsß<á®\ënk¦qÇ^ïox")

그러나 저자는 우리 가이 비 임의 문자열의 논리를 찾기를 원한다고 생각합니다.


1
"downvotes rush"를 피하기 위해 질문에 몇 가지 세부 정보를 추가했습니다 :-)
Marzio De Biasi

4

마 테마 티카-56

미스터리는 이미 해결되었으므로 아이디어를 구현하기 만하면됩니다.

⌊.5Prime@Range@4032⌋~Mod~2~FromDigits~2~IntegerString~16

좋은. 고양이가 가방에서 나왔을 때 가장 짧은 가능성이 궁금합니다.
Claudiu

"라이브러리 없음 (출력 인쇄에 필요한 라이브러리 제외)"이라고합니까?
피터 테일러

@PeterTaylor Yep, 수입품 없음-도서관 없음.
swish

의견에 비추어 볼 때, 그것이 OP가 그것을 해석하려는 의도라고 생각하지 않습니다.
피터 테일러

3

J-46 자

J 골프를 후손을 위해 기록하는 것만 신경 쓰지 마십시오. 트릭을 알아낼만큼 영리하지 않았습니다.

4[1!:2&4'0123456789abcdef'{~#.2|<.-:p:i.1007 4

설명 :

  • p:i.1007 4-0에서 정수의 1007 행, 4 열 행렬을 만든 다음 해당 정수에 해당하는 소수를 가져옵니다. 예, p:J 내장입니다. 네, 우리는 4 개의 소수입니다.

  • 2|<.-:-각 숫자를 반으로 줄이고 ( -:), 바닥을 세우고 ( ), <.모듈로 2 ( 2|)를 가져갑니다 . 이것은 다음 임대 중요한 비트를 취하는 것과 동일합니다.

  • #.-밑이 2 인 결과의 각 행을 정수로 변환합니다. 이것은 우리에게 0에서 15까지의 1007 숫자를 제공합니다.

  • '0123456789abcdef'{~#.-이 비트 매트릭스의 각 행을 숫자의 이진수로 사용하고 해당 숫자를 사용하여 16 진수 목록에서 선택하십시오. 이것은 모든 4 비트를 16 진수로 변환합니다.

  • 1!:2&4-J 인터프리터는 256자를 초과하는 문자열을 출력하는 데 문제가 있으므로이 데이터를 stdout에 직접 보내야합니다. 당신은 일부를 이기고, 일부는 잃습니다.

  • 4[-마지막으로 결과를 버리고 1!:2대신 출력에서 ​​누락 된 4를 출력합니다. 우리는 마지막 4 개의 소수를 포함하고 빈 결과를 여기에 반환하는 것보다 짧기 때문에이 작업을 수행합니다.


0

JS, 503

@ xem 아이디어 다음 :

s='Ù¦¶3V§K)°¬*ªm¸KLø¶*¬¡KN¥³çÉLIY쳪lZM9uìê$ÌÓ-Ã8N·¦\nÒµ7#T­yªnIURZ§:jéäRÍ-y­Æµ[´vQNó¢çjUMNJ£\/«c̵¦¤.ÃØ©õ3"[¢âÌ'+"'"+'ÔèÛ¤9ʪ[O6$ÓÆö­×q$á±Åïe5l×%ß]À²oZW(½Afí¢Rɬ³lV~ÑÆÌSJbÅY©²Ô¯"¥©ô²#2øû®HjµFz6YÓ%µ½JIb¥äYûåº\n5Ý©6©Éiwj²4-"aÅÂfâvtR¥Ù¹¦µì)X²¼HõŽ/2=OK.²kÙ2¤K\¼·³&9úB-díyIL£·²¦âÙUá¨K`¦áºÄ»ì29v¦´Æeyaª=T·=KÛ0MJ¡5u];Ù¬U[ݳâÌñ^³+S¶î+¬ZußY-ZLèôêH¹VÞ ©LUÕé:vºç²ªé«*Ö#3E=ÄéRãjGPº¯äå£c&³L¼ªZz«­¦ÛS.mº:fIM×eªÃ?ÊÂl+7UÉJ\bk¦®ÌÞr'
r=''
for(var i=0;i<s.length;i++) r+=s.charCodeAt(i).toString(16);
console.log(r)

0

매스 매 티카, 55

Prime~Array~4031~BitAnd~2~FromDigits~2~IntegerString~16

Mathematica 8에서 테스트되었습니다. 이것은 두 가지 관찰을 사용합니다.

  • Mathematica FromDigits는 실제로 주어진 자릿수의 범위를 확인하지 않으므로 양식 목록에 {2,0,2,2,0,...}적용하면에 적용하는 것처럼 두 배의 결과를 얻습니다 {1,0,1,1,0,...}. 하지만 정확히 BitAnd2에 소수를 섞어서 생성 된 형식 입니다.
  • 16 진 표현이 원하는 숫자의 마지막 비트는 0이되고 (짝수로 끝나는 문자열에서 알 수 있듯이) 소수보다 적은 두 배입니다. 그러나 두 가지 요소는 이전 관측치를 사용하여 얻는 것이므로 모든 것이 완벽하게 맞습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.