제한된 미니 챌린지 경찰의 스레드


33

강도의 실

경찰로서 당신의 임무는 세 가지를 선택하는 것입니다.

  • 프로그래밍 언어

  • OEIS 시퀀스

  • 바이트 세트

그런 다음 세트의 바이트 만 사용하여 n 번째 시퀀스를 계산하는 해당 언어로 프로그램을 비밀리에 작성해야합니다. 강도가 프로그램을 알아낼 수 있도록 세 가지 정보를 공개합니다.

답은 더 많은 점수가 좋은 바이트 세트의 바이트 수로 점수가 매겨집니다. 금이있는 답변의 자동 점수는 0입니다. 1 주일 후에도 답변이 깨지지 않으면 의도 한 프로그램을 공개하고 답변을 "안전한"것으로 표시 할 수 있습니다.

답은 시퀀스의 b- 파일에서 모든 항을 계산할 수 있어야하지만 이후에 항을 계산할 필요는 없습니다.

경찰과 강도 모두에 대해 1 또는 0 색인을 생성 할 수 있습니다.

다음은 코드가 주어진 바이트 세트와 일치하는지 확인 하는 Python 스크립트 입니다.


1
낮은 점수가 더 낫습니까? 또는 더 높게? 본질적으로 우리는 이미 해결책을 찾은 후에 다른 사람이 선택한 언어로 프로그램을 작성하는 것을 어렵게하는 제한된 문자 세트를 찾으려고 노력하고 있습니까?
BradC

1
세트의 모든 바이트를 사용해야합니까? 나는 그렇다고 추측하지만 아마도 도전에 명시되어야합니다.
얽히고 설킨

1
@Shaggy 일반적으로 아니오, 빨간 청어를 위해 다른 사람을 포함시킬 수 있지만 강도는 모든 것을 사용할 수 있습니다
Stephen

1
강도가 같은 바이트를 두 번 이상 사용할 수 있습니까?
Mr. Xcoder

2
@Azulflame b- 파일은 Aa b를 추가하고 a 를 추가하여 액세스 할 수있는 각 시퀀스와 관련된 파일입니다 .txt. 예를 들어 oeis.org/b4.txt 는 해당 시퀀스의 b 파일에 액세스합니다.
밀 마법사

답변:


11

하스켈 , A209229 , ( 금이 간 )

11 자 (줄 바꿈 포함) :

s<=[ ]
how!

2의 거듭 제곱에 대한 표시기 기능으로 True / False를 출력합니다.

1 => True
2 => True
3 => False
4 => True
5 => False
6 => False
7 => False
8 => True
9 => False
...

입력은 양의 정수입니다.


0은 False를 제공합니까?
H.PWiz

@ H.PWiz 내 코드는 0으로 작동하지 않으며 균열은 원하는대로 할 수 있습니다.
xnor

깨진! 매우 영리한
Lynn

트윗 담아 가기
xnor


5

하스켈, A000045 ( 균열 )

내가 내 마음을했고, 나는 내가 좋아 생각 t보다 s.

따라서 대신 30 바이트 (개행 포함)를 사용하십시오.

abcdeFgh|jklmnopqrtTuvwxyz
=()

일반적인 도전 설명은 다음을 요구합니다.

답은 순서 [...]의 b 파일에서 모든 항을 계산할 수 있어야합니다.

이 경우 b 파일 은 2000 번째 숫자까지 올라갑니다 Int.





4

하스켈, A000045 ( 균열 )

모두 피보나치 수를 좋아하고 하스켈을 좋아합니다 ...

제외하고 소문자 편지 : 나는 조심스럽게 당신을 위해 30 바이트를 선택 f, i그리고 t당신이 대문자 얻을 FT파이프 기호 |대신에, 그리고 세 가지 상징 =()과 줄 바꿈을. 여기 다시 있습니다 :

abcdeFgh|jklmnopqrsTuvwxyz
=()



4

하스켈, A009056 ( 크랙 )

또 다른 간단한 하나, 이제는 평범한 Haskell처럼 보이게하기에 충분한 글자가 있으며 아마도 내 것과 완전히 다른 해결책을 찾아서 나를 놀라게 할 수도 있습니다.

시퀀스는 Numbers> = 3 이며 문자 세트는 다음 30 바이트로 구성됩니다.

{[abcdefghijklmnopqr uvwxyz]}.

균열에는 멋진 기술이 있습니다. 나는 단지 이것을 생각하고 있었다 :

head . flip drop [ floor pi .. ]




3

단항 , A002275 , 1 바이트

바이트 세트 :

0

나는 적어도 그것을 시도해야했다 : 3

(언어의 모든 명령을 사용할 수 있으므로 특히보기 힘들다고 생각하지 않습니다)


1
점수를 극대화하기 위해 모든 바이트를 포함시키지 않겠습니까? 모든 바이트를 포함하는 데 아무런 차이가 없을 때 가능한 한 가장 적은 점수를 기록했습니다.
밀 마법사

나는 우리가 낮은 점수를 받고 있다고 생각했습니다 (죄송합니다, 나는 여기 새로 왔어요).
sonar235


@muddyfish 문자로 입력 할 수 있습니까?
sonar235

@ sonar235 일반적으로 우리는 brainfuck의 문자로 입력을 허용합니다. 여기의 값이 255를 초과 하기는하지만 그 값을 사용하는 대답이 유효하다고 생각하지 않습니다.
밀 마법사



3

Hexagony , A057077 , 77 바이트

주기적 순서 1, 1, -1, -1. 목록으로 :

a(0) = 1
a(1) = 1
a(2) = -1
a(3) = -1
a(4) = 1
a(5) = 1
a(6) = -1
   ...

줄 바꿈과 공백 문자를 포함하는 문자 세트 (편집 됨) :

! % & (), 0123456789;? @ ABCDEFGHIJKLMOPQRSTUVWXYZ ^ abcdefghijklmnopqrstuvwxyz [] #. 

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


문자 세트를 수정 한 이유는 무엇입니까?
Poke

1
@Poke는 바이트 수가 많을수록 더 좋을 것이므로 유용하지 않은 명령을 추가했습니다.
Adnan

3

하스켈, A000045 ( 균열 )

금이 갔고 새 버전을 시작하지 않지만 더 많은 게임을 즐기고 싶다면 :없이 y가능하며 효율적일 수 있습니다.


을 (를) 제공하여 잘못된 방향으로 인도 한 것에 대해 사과드립니다 g. 없이 똑같이하자!

나머지 29 바이트 (개행 포함)는 다음과 같습니다.

abcdeFh|jklmnopqrtTuvwxyz
=()

다시 말하지만, Intb 파일에 있기 때문에 필요한 2000 번째 피보나치 수를 계산하기에는 충분하지 않습니다.



3

하스켈, A000045 ( 균열 )

이것은 (발표 된) 새로운 버전은 아니지만 완전히 다릅니다. (권리?)

나는 여전히 당신이 나의 멋진 작은 관찰을 재발견 할 수 있기를 바랍니다.

이 시간은 당신이 (내가 아는 한)이 만 포함 크기 (17)의 캐릭터 세트를 사용하여 피보나치 시퀀스를 실행하라는 메시지가 하나 둘 불필요한 문자를 :

eilnt=(,).[ ]_:0!

줄 바꿈이 없지만 (가독성을 위해 버전을 자유롭게 표시하십시오) 2000 번째 피보나치 수를 계산할 수 있어야합니다.



3

Cubix, A000027 (SAFE) 17 포인트

!&')-/0;@Oiru.NSQ

내 해결책 :

!O!;i)!/u&!!r-)0'u;;!@

여기에서 온라인으로 보십시오

나는 원래 이것을하지 않고 이것을 .NSQ했지만 안전하게 추가 할 수 있다고 생각했습니다.

설명:

이 순서는 "긍정 정수"입니다. 그러나 Cubix는 3 개의 입력 명령 갖는 i단일 문자 판독 (추진 -1입력이 비어있는 경우) A, 문자 등의 입력의 나머지 (a 추진 판독 어느 -1스택 bettom로) 및 I를 판독하는 다음 숫자는 입력에서 벗어납니다 ( 0일치하지 않으면 푸시 ). 그래서 당연히 나는 iASCII 값으로 숫자를 읽는 것만 제공 했습니다. 어 오. 또한, -1와 함께 입력의 끝 부분에 대한 일반적인 마커이며, ?내가 지웠어 있도록 ?사용하는 저를 강제로 !제어 흐름 (TOS는 0이 아닌 경우 다음 명령을 건너 뜁니다). 마지막으로 &인쇄를 위해 숫자를 연결 해야한다고 생각 했습니다.O (스택의 상단을 숫자로 출력 함), 이제는 그것이 필요하지 않다는 것을 알게되었습니다!

도전의 또 다른 부분은 원래 .no-op 캐릭터를 갖지 않는 것이었지만 !조심하면 대신 쌍을 사용할 수 있습니다 .

    ! O
    ! ;
i ) ! / u & ! !
r - ) 0 ' u ; ;
    ! @
    . .

i) : 입력을 읽고 증가시킵니다.

!/ : 스택 상단이 0이면 (입력 끝) 왼쪽으로 돌립니다.

왼쪽 : ;O.@스택의 상단, 숫자로 출력, 정지.

그렇지 않으면:

u'0: char 코드 0를 스택 맨 위로 푸시

)-r: 증가, 빼기 및 회전

;; : 스택 상단 팝 두 번

u& : 숫자를 연결

!!: 순 제로 효과, 이제 우리는 i)다시 있습니다.


Cubix에 noop 문자가 있습니까? 왜 점수를 높이기 위해 그것들을 추가하지 않습니까? 또는 noops가 없다는 도전의 일부입니다.
밀 마법사

@WheatWizard 나는 자비 롭고 추가하기로 결정 .했지만 그것 없이는 할 수 있습니다.
주세페

3

Seed , A005408 (홀수)-안전

조금 더 도전적인 것이 있습니다. Seed에서 유효한 문자를 사용할 수 있습니다 :

[0-9 ]

컴퓨터 괴물이 없다면 일주일에이 힘을 무력화 할 수 없습니다. 행운을 빕니다! 깨지기 쉽다.

힌트

이것은 내 솔루션에 사용 된 Befunge-98 프로그램입니다. 9&2*1-.@( 9제거 할 수는 있지만 솔루션은

해결책

8 47142938850356537668025719950342285215695875470457212766920093958965599014291682211474803930206233718243166021324700185443274842742744297183042397910454208210130742260519105651032450664856693714718759816232968955289663444878636053035645231246428917992493766505872029989544065894418166685284738859999912471659057565000392419689361271972485444731284404987238803115210428572945108908191097214978382112218242627719651728712577306652405452922782307249485947045215982784790396555726144526602778473387279897334709142853151393812930171163300904436548870603006549005515709074682843356844201220668045057407146751793470423217099467145255174198241606814578351260769359571053755888106818197239116973006365593563235361647743411341624822052103816968153274122434280200888824954875622811325064255818154979564925710534165572852442761249176778416688044630942040966271963723430245979221181930857841829694362184653939393940015797332978459794253176110314873994228261888801228999293570329618551223457182420746927212801550646743152754821640064626761542582557138452651970009253770914346130172884305622027370793496993281847017017643506435562229916984107083951938286577012273222191422054315198157936674247934699496471202544270325061352014830137178245082445717253260177560449757186762445707057028987371278573629077370632470496186218574320801798046510846708620502139560277546345198686675095078255875594169064796673074708822106659920187882062247609587560174781170641367430722951002242213604709887062481149928551745163110045572994991844223216663621203042075294195007458339984527333125093390189721042315604498435269143549420166732177200370228527273606218617171975362431824163269672003982537382982066136613799403024924018145511099557720492305303748099327810811511080314262364010281851651151072957475365629128068033597559560186625877942054704386175359499573139930378099420149452745731809033737756051947913924265484582800618244473333957173960222243311738522875022546610298627492222587971756897328087719407454153248557203886421828643453889090192355970705084245312184441674098515659253482621260617211786550204852895652236768886852209506535523414991099331857674826373947830587028494510697603296607361093480842935154672353288419699354739650168309017848485131553416956405911683526896232046773861961911767319373432460217755874481607587604361758089936007730253450733375831228127106295259261723611771334468553746160739548375950046831923765023329346333968732796413192682936767133122325481273354810124729664400173367781325488656859581438769940474229394692089519981810909719628263357284973442177568041416363386891516725592952892168077523560584005586276794967492051823290615767599202657060820223928678900774601616908031321346819422162123048834532926372862962159255934240435694566497798544870186550219886342379298214007368081326725550763589917206162393892085506551547475259270513853987294911388226039365971184089828739349642347312302559286882065147953715607221387657413593069535573044067517274676745306396611760657091792151803798859781616126637075577936361782593546481811651450365118155866449850474140044293772144065341051900055416408240857348697564252386403719942197789892382627153382011984996644288495699209129097948405810551134169739499539470610790009272281731894550593600643079188663110695127017324336488487580799309995227054576681630676222848231145106058050452439356753552872060820230589152143268436210090733908507724084889788244157692417246691477400856716677564609725979550100138132944851304473466485128295568194188600539248624248078558656162635444219199062786468487219220160009464328883337821175254405764395407405891483810757405446047244460754827113527540703326714751461178900155717130399854358953609995319006890674085682111514072508440632941090209366005504352890092326935445829213294943731517698438648298921337375443947066950275955144209037675013663600062205168551851984361951824731229113379464426979717688372371011461890139087487634586087688796134318950140718824105959727161482389914414206768064990410615468858520426399188835467970981786227122743162945627167772066100574532803061925537235491026486409948728571706557098859331941260622260924660292578136091523126589085799981416326395824628987154802653126685882440760385315869346960183809644486238810912663304360284449610976505715001267334297285036791711464142665122000857666018757370925847113798258537503747803972255591351740843663253694303946089997282812556281486820325652814785261116697261899511762129550421005941055852897451832731304151488058522478260009347144486599715629242208891126238083949281490804191584238425634093683587199278186505945727829025071885767559828670803412582690901456978557379916793144695491189633486065077294485660840922713748873840986104486221528464294334436081663106336911265802650605150347413103936140565054608396116572669757269475369570465915381045895991937087068526458273755454602799814909213983801968791431574508976448235055061998715636460946550584682626461010298101802277643570201189324102499951196290880892383380284543173390448406975616650185808619832614403133944687275834716343817926764699295672501869876060896683204343897481630037607159476461359111190545646447421653872016775582115425356868533678655969328210255235050133718364831289991244684695035034122861927276046255405376531096051541299607470934463981741370397268760811035606321455156217990078359217247117349544774085111287345436916077577032709684005131011429476229617901273007027774182864475737502587896225475248267937497254066190335088823904767397814233350286976811901982274477445433872253983823904938249655089770642137858608313524715533520654523880832056453080193644871440738737277389718589793074725139142291918837706550037934799585495183374639955887618135803388399608755212147742199481865453122900714456703147150994585431640652462593333773031385396586933380738103697887063571042512186708015948688088011290197524699274772775288900864690592106393483764109837848793374117655194139018455509931621247697015323332300969105814058088442693320033876473960017819576425062784644138417943454576404265382986995583045527928832

이것을 어떻게 생성 했습니까?
Christopher

@ 2EZ4RTZ 고통스럽고 파이썬 소스 를 참조로 사용합니다. 그래도 골프는 많이 할 수 있습니다.
TehPers



2

cQuents , A000027 , 금이 간


 !"#%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

맞습니다! 모든 ASCII를 얻습니다! 더있다 ... 기다려 $무슨 ... $cQuents 다시? 예, 인덱스가 내장되어 있습니다. 음, 힘든 행운 : /

의도 된 해결책 :

#|A:A

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



작동하는 @Adnan yup, 나는 내가했던 것처럼 그것을 열지 말아야한다고 생각합니다 : PI는 그것을 할 수있는 다른 방법, 좋은 일을 생각할 수 없었습니다. 의도 된 솔루션을 추가했습니다.
Stephen


2

루비 , A000004 , 5 바이트, 크랙

시작하기 위해 엉망입니다. Ruby에 익숙한 사람이라면 누구나 쉽게 사용할 수 있습니다. 점수는 낮지 만 무엇이든 상관 없습니다.

/np.$

금이 간, 의도하지 않은 악용

금이 간 ( n플래그를 사용한 의도 된 답변 )



@Adnan Eh, 나는 그것을 받아 들일 것이다. n플래그를 요구 했어야한다 (이것이 바이트 시퀀스에 있고 $.1 이되는 이유 )
Value Ink



2

R, A000290 , ( 균열 )

바이트 세트 :

()%cfinotu

아니 c,하지만 다른 모든 것 function? 끔찍 해요 입력을 읽는 것 외에는이 작업을 수행하는 방법을 알고 있습니다.
Giuseppe

@Giuseppe는, woops ashouldve가되었습니다 c. 죄송합니다.
JAD

1
이것은 내가이 똥을 수동으로하기 위해 얻는 것입니다.
JAD

걱정 마; 이것으로 충분하다!
주세페



2

cQuents , A000217 , 금이 간

바이트 세트 :

$:=1;
\-

이것은 아직 문서를 푸시하지 않은 기능을 사용하므로 그때까지 기다리면 오늘 밤에 푸시 할 것입니다. (또는 당신은 내 소스 코드를 통해 경 사진 ... 재미있다). 문서가 푸시되었습니다. 최근 버그 수정이 TIO에있는 경우 바이트가 줄어 듭니다.

의도 된 솔루션 :

=1-1:--\1$ ;$

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



2

자바 스크립트 (ES6), 13 10 바이트, A000045 , 크랙

이것은 쉬워야한다.

F (n) = F (n-1) + F (n-2), F (0) = 0, F (1) = 1 인 피보나치 시퀀스입니다.

바이트 세트 :

$()-:<=>?[]_~

편집하다:

다음 10 바이트로도 수행 할 수 있습니다.

$()-:=>?_~


1
[code-golf]가 아닙니다. "답은 점수가 좋은 바이트 세트의 바이트 수로 점수가 매겨집니다." 더 많은 바이트가 좋습니다.
LarsW

반면에 @LarsW, 더 많은 바이트도 쉽게 크래킹하기 쉽습니다 :)
JAD



2

Befunge , A000142 , 29 바이트, ( 균열 )

Byte Set: @.$_ ^*:\v>-1&

말할 수 없으면 바이트 세트에 공백이 포함되어 있다는 것입니다.

이것은해야 적당히 해결하기 쉬운.

편집 : OEIS 전에 "A"를 잊어 버렸습니다



2

R, A105311 , ( 균열 )

'%(),:=acdeginpstx

l또는 없이 이것을 시도해 봅시다 o.

이것이 금이 간 이후 의도 된 해결책은 다음과 같습니다.

cat(diag(diag((a=scan()))%x%diag((a==a):a)),sep=''). diag세 가지 방법으로 사용할 수있는 흥미로운 기능입니다. 단일 정수 ( diag(n))가 표시되면 대각선에 1이있는 NxN 행렬이 생성됩니다. 벡터 ( diag(1:n))가 표시되면 대각선에 벡터가있는 NxN 행렬이 생성됩니다. 행렬 ( diag(diag(n))) 이 표시되면 대각선을 벡터로 반환합니다.%x%두 행렬의 크로네 커 곱을 계산했습니다. 여기서 행렬 1의 각 요소에는 행렬 2의 각 요소가 별도로 곱해집니다. 이를 길이 n동일 행렬과 1:n대각 행렬로 수행하면 반복 되는 길이의 길이 n^2대각 행렬이 만들어집니다 . 다시 추출하여 인쇄합니다.1:nndiagcat


1
더 재미있을거야 :)
주세페

이것은 개행을 포함합니까?
Giuseppe

@Giuseppe 줄 바꿈 없음
JAD

1
@ 주세페와 난 그냥 더블 더블 체크,이 바이트 세트가 맞습니다
JAD

[깨진! ] ( codegolf.stackexchange.com/a/136457/67312)-%o% 나는 그것이 %x%존재 한다는 것을 깨닫기 전에 (잘못) 사용되었습니다 . 내가 할 수 있었던 것 같아요 'i'=='i'위해 1그렇게하지만, 어느 쪽이든 작동합니다.
주세페
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.