Mini desafios restritos Thread da Cop


33

Fio do ladrão

Sua tarefa como policiais é selecionar três coisas:

  • Uma linguagem de programação

  • Uma sequência OEIS

  • Um conjunto de bytes

Você deve escrever secretamente um programa nesse idioma que calcule a seqüência do enésimo termo, usando apenas os bytes no conjunto. Você revelará as três informações para que os ladrões possam tentar descobrir o programa.

As respostas serão pontuadas pelo número de bytes no conjunto de bytes, com mais pontuação sendo boa. As respostas quebradas têm uma pontuação automática de 0. Se a sua resposta for quebrada após uma semana, você poderá revelar o programa pretendido e marcar sua resposta como "segura".

As respostas devem ser capazes de calcular todos os termos nos arquivos b da sequência, mas não são necessários para calcular nenhum termo depois.

As sequências podem ser indexadas 1 ou 0 para policiais e ladrões.

Aqui está um script Python que verifica se o seu código corresponde ao conjunto de bytes especificado.


1
Menor pontuação é melhor? Ou mais alto? Então, em essência, estamos tentando encontrar um conjunto de caracteres restrito que dificulta a criação de um programa no idioma escolhido, depois que já tivermos encontrado uma solução.
BradC 27/07/19

1
Precisamos usar todos os bytes em nosso conjunto? Eu acho que sim, mas provavelmente deve ser especificado no desafio.
Shaggy

1
@Shaggy geralmente não, você pode inclui outros por pistas falsas, mas ladrões podem usar tudo
Stephen

1
Os ladrões podem usar o mesmo byte duas ou mais vezes?
Mr. Xcoder

2
@Azulflame Os arquivos b são arquivos associados a cada sequência que podem ser acessados, substituindo por Acom be anexando a .txt. Por exemplo, oeis.org/b4.txt acessaria os arquivos b para essa sequência.
Assistente de trigo

Respostas:


11

Haskell , A209229 , ( rachado )

11 caracteres (incluindo nova linha):

s<=[ ]
how!

Emite Verdadeiro / Falso como uma função indicadora para potências de 2:

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

As entradas são números inteiros positivos.


0 dá Falso?
H.PWiz

@ H.PWiz Meu código não funciona para 0, seu crack pode fazer o que você quiser.
Xnor

Rachado! Muito inteligente ~
Lynn

@ Lynn Bem feito!
Xnor


5

Haskell, A000045 ( rachado )

Decidi, acho que gosto tmais do que s.

Então, vamos usar esses 30 bytes (incluindo nova linha):

abcdeFgh|jklmnopqrtTuvwxyz
=()

Observe que a descrição geral do desafio exige que

As respostas devem ser capazes de calcular todos os termos nos arquivos b da sequência [...].

Nesse caso, o arquivo b sobe para o número 2000, que está muito além do que pode ser calculado usando Int.





4

Haskell, A000045 ( Rachado )

Todo mundo gosta de números de Fibonacci, eu gosto de Haskell ...

Eu selecionei cuidadosamente 30 bytes para você: as letras minúsculas, exceto f, ie t, você tem as letras maiúsculas Fe Te o símbolo pipe |vez, e os três símbolos =(), e de nova linha. Aqui estão eles novamente:

abcdeFgh|jklmnopqrsTuvwxyz
=()



4

Haskell, A009056 ( rachado )

Outro simples, agora com letras suficientes para parecer Haskell comum e talvez você me surpreenda ao encontrar uma solução completamente diferente da minha.

A sequência é Números> = 3 e o conjunto de caracteres consiste nesses 30 bytes:

{[abcdefghijklmnopqr uvwxyz]}.

O crack tem algumas técnicas legais. Eu só estava pensando nisso:

head . flip drop [ floor pi .. ]


1
N

3

C (C99), A000005 , 25 bytes #, rachado!

Esses são os bytes para um problema completo, toma n como argumento da linha de comando e gera resposta para stdout (o espaço está incluído no bytecount).

<=>,;!"()*%+acdfhimnoprt 

ok eu queria saber lol. como um argumento de linha de comando?
Conor O'Brien

Sim, eu vou deixar isso mais claro
dj0wns

1
Rachado! isso foi divertido: D
Conor O'Brien

3

Unário , A002275 , 1 Byte

Conjunto de bytes:

0

Eu tive que pelo menos tentar: 3

(Eu não acho que será particularmente difícil, pois todos os comandos no idioma estão disponíveis)


1
Por que não incluir todos os bytes para maximizar sua pontuação? Você pontuou a menor quantidade possível, quando não faria diferença incluir todos os bytes.
Assistente de trigo

Eu pensei que estávamos indo para uma pontuação baixa (desculpe, eu sou novo aqui).
sonar235


@muddyfish A entrada como personagem é permitida para o cérebro?
sonar235

@sonar235 In general we do allow input as character for brainfuck. Although since values here exceed 255, I don't think an answer that uses them can be valid.
Wheat Wizard



3

Hexagony, A057077, 77 bytes

Periodic sequence 1, 1, -1, -1. As a list:

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

Character set (edited), which includes a newline and a space character:

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

Try it online!


Any reason you modified the character set?
Poke

1
@Poke apparently the higher the byte count the better, so I just added a bunch of non-useful commands.
Adnan

3

Haskell, A000045 (cracked)

It's cracked, and I won't start a new version, but if you want to play more: it's possible without y, and it's possible to be efficient.


I apologize for leading you in wrong directions by giving a g. Let's do the same without!

Here are the 29 remaining bytes (including newline):

abcdeFh|jklmnopqrtTuvwxyz
=()

Again, remember that Int won't be enough to compute the 2000th Fibonacci number which is needed because it is in the b-file.



3

Haskell, A000045 (cracked)

This is kindof (as announced) not a new version, but completely different. (Right?)

I still hope I can make you rediscover my nice little observation.

This time you are asked to implement the Fibonacci sequence using a charset of size 17, which (as far as I know) contains only one two unneeded chars:

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

Note that there is no newline (but feel free to show a version which has them for readability) and remember that you have to be able to compute the 2000th Fibonacci number.



3

Cubix, A000027 (SAFE) 17 points

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

My solution:

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

watch it online here

I originally did this without .NSQ but I figured I could add them safely.

Explanation:

Esta sequência é apenas "Os Inteiros Positivos". No entanto, o Cubix possui três comandos de entrada i, que lê em um único caractere (pressionando -1se a entrada estiver vazia), Aque lê o restante da entrada como caracteres (pressionando -1a no bettom da pilha) e I, que lê o próximo número da entrada (pressionando 0se não houver correspondência). Então, naturalmente, eu apenas forneci iquais leituras em dígitos como seu valor ascii. uh-oh Além disso, -1é o marcador usual para o final da entrada, em conjunto com o ?que eu me livrei ?, me forçando a usar !(pule a próxima instrução se o TOS não for zero) para o fluxo de controle. Por fim, pensei que precisava &concatenar dígitos para impressão comO (que gera o topo da pilha como um número), mas agora percebo que isso também não era necessário!

Outra parte do desafio era originalmente não ter .o personagem no-op, mas você pode usar pares de pares !se tiver cuidado:

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

i) : entrada de leitura, incremento.

!/ : se o topo da pilha for zero (final da entrada), vire à esquerda

esquerda:: ;O.@pop no topo da pilha, saída como número, parada.

de outra forma:

u'0: envia o código de char 0para o topo da pilha

)-r: incrementa, subtrai e gira

;; : pop top da pilha duas vezes

u& : concatenar dígitos

!!: efeito zero líquido, agora estamos de i)novo.


Cubix tem alguns caracteres noop certo? Por que você não os adiciona para aumentar sua pontuação? Ou faz parte do desafio que não há noops.
Assistente de trigo

@WheatWizard Eu decidi ser misericordioso e adicionar, .mas isso pode ser feito sem ele.
Giuseppe

3

Seed , A005408 (Odd Numbers) - Cofre

Aqui está um pouco mais desafiador. Você pode usar qualquer caractere válido no Seed:

[0-9 ]

Você não deve ser capaz de fazer força bruta em uma semana, a menos que tenha um monstro de computador. Boa sorte! É quebrável.

Sugestão

Este é o programa Befunge-98 usado na minha solução: 9&2*1-.@( 9pode ser removido, mas acontece que minha solução tem

Solução

8 47142938850356537668025719950342285215695875470457212766920093958965599014291682211474803930206233718243166021324700185443274842742744297183042397910454208210130742260519105651032450664856693714718759816232968955289663444878636053035645231246428917992493766505872029989544065894418166685284738859999912471659057565000392419689361271972485444731284404987238803115210428572945108908191097214978382112218242627719651728712577306652405452922782307249485947045215982784790396555726144526602778473387279897334709142853151393812930171163300904436548870603006549005515709074682843356844201220668045057407146751793470423217099467145255174198241606814578351260769359571053755888106818197239116973006365593563235361647743411341624822052103816968153274122434280200888824954875622811325064255818154979564925710534165572852442761249176778416688044630942040966271963723430245979221181930857841829694362184653939393940015797332978459794253176110314873994228261888801228999293570329618551223457182420746927212801550646743152754821640064626761542582557138452651970009253770914346130172884305622027370793496993281847017017643506435562229916984107083951938286577012273222191422054315198157936674247934699496471202544270325061352014830137178245082445717253260177560449757186762445707057028987371278573629077370632470496186218574320801798046510846708620502139560277546345198686675095078255875594169064796673074708822106659920187882062247609587560174781170641367430722951002242213604709887062481149928551745163110045572994991844223216663621203042075294195007458339984527333125093390189721042315604498435269143549420166732177200370228527273606218617171975362431824163269672003982537382982066136613799403024924018145511099557720492305303748099327810811511080314262364010281851651151072957475365629128068033597559560186625877942054704386175359499573139930378099420149452745731809033737756051947913924265484582800618244473333957173960222243311738522875022546610298627492222587971756897328087719407454153248557203886421828643453889090192355970705084245312184441674098515659253482621260617211786550204852895652236768886852209506535523414991099331857674826373947830587028494510697603296607361093480842935154672353288419699354739650168309017848485131553416956405911683526896232046773861961911767319373432460217755874481607587604361758089936007730253450733375831228127106295259261723611771334468553746160739548375950046831923765023329346333968732796413192682936767133122325481273354810124729664400173367781325488656859581438769940474229394692089519981810909719628263357284973442177568041416363386891516725592952892168077523560584005586276794967492051823290615767599202657060820223928678900774601616908031321346819422162123048834532926372862962159255934240435694566497798544870186550219886342379298214007368081326725550763589917206162393892085506551547475259270513853987294911388226039365971184089828739349642347312302559286882065147953715607221387657413593069535573044067517274676745306396611760657091792151803798859781616126637075577936361782593546481811651450365118155866449850474140044293772144065341051900055416408240857348697564252386403719942197789892382627153382011984996644288495699209129097948405810551134169739499539470610790009272281731894550593600643079188663110695127017324336488487580799309995227054576681630676222848231145106058050452439356753552872060820230589152143268436210090733908507724084889788244157692417246691477400856716677564609725979550100138132944851304473466485128295568194188600539248624248078558656162635444219199062786468487219220160009464328883337821175254405764395407405891483810757405446047244460754827113527540703326714751461178900155717130399854358953609995319006890674085682111514072508440632941090209366005504352890092326935445829213294943731517698438648298921337375443947066950275955144209037675013663600062205168551851984361951824731229113379464426979717688372371011461890139087487634586087688796134318950140718824105959727161482389914414206768064990410615468858520426399188835467970981786227122743162945627167772066100574532803061925537235491026486409948728571706557098859331941260622260924660292578136091523126589085799981416326395824628987154802653126685882440760385315869346960183809644486238810912663304360284449610976505715001267334297285036791711464142665122000857666018757370925847113798258537503747803972255591351740843663253694303946089997282812556281486820325652814785261116697261899511762129550421005941055852897451832731304151488058522478260009347144486599715629242208891126238083949281490804191584238425634093683587199278186505945727829025071885767559828670803412582690901456978557379916793144695491189633486065077294485660840922713748873840986104486221528464294334436081663106336911265802650605150347413103936140565054608396116572669757269475369570465915381045895991937087068526458273755454602799814909213983801968791431574508976448235055061998715636460946550584682626461010298101802277643570201189324102499951196290880892383380284543173390448406975616650185808619832614403133944687275834716343817926764699295672501869876060896683204343897481630037607159476461359111190545646447421653872016775582115425356868533678655969328210255235050133718364831289991244684695035034122861927276046255405376531096051541299607470934463981741370397268760811035606321455156217990078359217247117349544774085111287345436916077577032709684005131011429476229617901273007027774182864475737502587896225475248267937497254066190335088823904767397814233350286976811901982274477445433872253983823904938249655089770642137858608313524715533520654523880832056453080193644871440738737277389718589793074725139142291918837706550037934799585495183374639955887618135803388399608755212147742199481865453122900714456703147150994585431640652462593333773031385396586933380738103697887063571042512186708015948688088011290197524699274772775288900864690592106393483764109837848793374117655194139018455509931621247697015323332300969105814058088442693320033876473960017819576425062784644138417943454576404265382986995583045527928832

Como você gerou isso?
Christopher

@ 2EZ4RTZ Dolorosamente, e com a fonte do Python como referência. Provavelmente pode ser muito jogado de golfe.
TehPers



2

cQuents , A000027 , Rachado


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

Está certo! Você recebe todo o ASCII! Espere ... não há $... o que há de $novo no cQuents? Ah, sim, o índice incorporado. Bem, azar: /

Solução pretendida:

#|A:A

Experimente online!



@ Adnan, isso funciona, acho que não deveria ter aberto tanto quanto abri: o PI não conseguia pensar em maneiras diferentes de fazer isso, bom trabalho. Adicionada solução pretendida.
Stephen


2

Ruby , A000004 , 5 bytes, Rachado

Apenas brincando para começar. Deve ser fácil para qualquer pessoa familiarizada com Ruby. É uma pontuação baixa, mas tanto faz.

/np.$

Exploração rachada e não intencional

Rachado (resposta pretendida usando nsinalizador)



@ Adnan Eh, eu aceito. Deveria ter exigido o nsinalizador (que é a razão pela qual ele está na sequência de bytes e faria $.1) igual a
Value Ink



2

R, A000290 , ( rachado )

Conjunto de bytes:

()%cfinotu

não c, mas tudo mais para function? Isso é horrível. Eu sei como fazer isso, exceto para leitura na entrada ...
Giuseppe

@ Giuseppe woops, adeveria ter sido a c. Desculpe.
JAD 27/07

1
Isto é o que eu recebo por fazer esta merda manualmente ...
JAD

Não se preocupe; isso é difícil o suficiente!
Giuseppe



2

cQuents , A000217 , Rachado

Byteset:

$:=1;
\-

Observe que isso usa um recurso para o qual ainda não enviei a documentação, portanto, o envio esta noite, se você esperar até lá. (Ou você pode ler meu código-fonte ... se divertir).Documentação enviada. Seria um byte a menos se uma correção recente estivesse no TIO.

Solução pretendida:

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

Experimente Online!



2

JavaScript (ES6), 13 10 bytes, A000045 , Rachado

Isso deve ser fácil.

Esta é a sequência de Fibonacci: F (n) = F (n-1) + F (n-2) com F (0) = 0 e F (1) = 1.

Conjunto de bytes:

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

Editar:

Isso pode ser feito com os seguintes 10 bytes:

$()-:=>?_~


1
Isso não é [code-golf]: "As respostas serão pontuadas pelo número de bytes no conjunto de bytes, com a pontuação sendo boa". Mais bytes são melhores.
LarsW

@LarsW por outro lado, mais bytes também torna mais fácil para quebrar :)
JAD




2

R, A105311 , ( rachado )

'%(),:=acdeginpstx

Vamos tentar isso sem o lou o.

Como isso foi quebrado, a solução pretendida:

cat(diag(diag((a=scan()))%x%diag((a==a):a)),sep=''). diagé uma função interessante, que pode ser usada de três maneiras diferentes. Quando apresentado com um único inteiro ( diag(n)), cria uma matriz NxN com 1 na diagonal. Quando apresentado com um vetor ( diag(1:n)), ele cria uma matriz NxN com o vetor na diagonal. Quando apresentado com uma matriz ( diag(diag(n))), retorna a diagonal como um vetor. %x%calculou o produto Kronecker de duas matrizes, onde cada elemento na matriz 1 é multiplicado por cada elemento na matriz 2 separadamente. Fazer isso com uma nmatriz de identidade de comprimento e uma 1:nmatriz diagonal, cria uma n^2matriz diagonal de comprimento com tempos 1:nrepetidos n. diagextrai isso novamente e catimprime.


1
este vai ser ainda mais divertido :)
Giuseppe

isso inclui uma nova linha?
Giuseppe

@Giuseppe Não há novas linhas
JAD

1
@Giuseppe e eu só double double marcada, esta byteset está correto
JAD

[rachado! ] ( codegolf.stackexchange.com/a/136457/67312 ) - Eu (incorretamente) usei %o%antes de perceber que %x%existia. Eu acho que eu poderia ter feito 'i'=='i'para 1mas de qualquer forma obras, para.
Giuseppe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.