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.

Assistente de Trigo
fonte
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.

xnor
fonte
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

Python 2 , A000045 ( rachado )

ml:= input(as,forge)

contém um espaço em branco e uma nova linha
Experimente online!
Solução pretendida

Cajado
fonte
1
+1 Estou surpreso este não usa +em tudo
Mr. Xcoder
2
Parabéns, 10k btw :) #
315 Adnan
Cracked
Adnan
@ Mr.Xcoder Não conhece python tão bem, mas plusfuncionaria?
JAD 27/07
@JarkoDubbeldam Não, sumseria
Sr. Xcoder
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.

Peneiradores cristãos
fonte
Rachado !
21417 Lynn
Rachado
H.PWiz
4

Octave, A000290 , Rachado !

A sequência é o número do quadrado: 0, 1, 4, 9, 16, 25, 36, 49 ... (para que você não precise verificar o link).

'()/@^_
Stewie Griffin
fonte
Rachado!
Conor O'Brien
Que era de fato a solução destina-se :)
Stewie Griffin
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
=()
Peneiradores cristãos
fonte
Cracked
xnor
4

Haskell, A034262 , 43 bytes, quebrado

!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~

Computa a(n) = n³ + n.

Laikoni
fonte
Não é possível obter o arquivo b agora. Voltar está Intbom o suficiente?
Christian Sievers
1
Rachado ?
Christian Sievers
@ChristianSievers Sim, essa é exatamente a minha solução.
Laikoni
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 .. ]

Peneiradores cristãos
fonte
1
Rachado .
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 
dj0wns
fonte
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)

sonar235
fonte
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
1
Cracked
Blue
@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

JavaScript (ES6), 17 bytes, A000290 (Cracked)

Again, this is the simple square sequence a(n) = n2.

Byte set:

$()=>CI`abelotv{}
Arnauld
fonte
Cracked!
LarsW
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!

Adnan
fonte
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.

Christian Sievers
fonte
Cracked
nimi
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.

Christian Sievers
fonte
Cracked.
nimi
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.

Giuseppe
fonte
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
TehPers
fonte
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

R, A000142 , ( Rachado )

Conjunto de bytes:

-()*,`=cfinotu

Solução pretendida:

f=function(n,c=n==n)'if'(n,f(n-(n==n),c*n),c*(n==n))

JAD
fonte
rachado!
Giuseppe
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!

Stephen
fonte
Rachado ?
Adnan
@ 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

Python 3, A007504 ( rachado )

Esse conjunto de bytes, incluindo nova linha:

bfuwo)nm1h[=(t+;0a
sig%pr, le:]

Meu código não fornece saída infinita, mas pode calcular a lista b inteira.

Azulflame
fonte
1
Bem-vindo ao PPCG!
Zacharý
1
Cracked
Jonathan Allan
1
Sucata que eu usei um .:(
Jonathan Allan
1
Eu consertei o crack.
Jonathan Allan
1
... e migrou para Python 3.
Jonathan Allan
2

R, A000290 , ( rachado )

Conjunto de bytes:

()%cfinotu
JAD
fonte
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
rachado
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!

Stephen
fonte
Rachado!
notjagan
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:

$()-:=>?_~
Ra8
fonte
Rachado!
Kritixi Lithos
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

Befunge , A000142 , 29 bytes, ( rachado )

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

Se você não pode dizer, esse conjunto de bytes inclui um espaço.

Isso deve ser moderadamente fácil de resolver.

Edit: Esqueceu o "A" antes do OEIS

Jordânia
fonte
Cracked
KSmarts
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.

JAD
fonte
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