Anagramas poliglotas Tópico dos policiais


44

Esse desafio tem dois tópicos. Este é o tópico dos policiais. O tópico dos ladrões está localizado aqui .

Seu desafio é escolher uma sequência OEIS e escrever dois programas completos em dois idiomas diferentes que produzam o enésimo item na sequência quando um n é dado via STDIN ou outras formas de entrada padrão, onde n é qualquer número positivo. No entanto, seus dois programas devem ser anagramas, o que significa que cada um pode ser reorganizado a partir das letras dos outros.

Os programas devem gerar o decimal do número seguido pelo espaço em branco opcional para STDOUT. Os programas podem ser enviados para STDERR, no entanto, devem ser ignorados e, se o caso oculto ocorrer, deve ser claramente indicado que esse é o caso.

Se desejar, você também pode enviar por código de caractere. No entanto, se você fizer isso em sua solução oculta, deverá declarar isso no corpo de sua submissão.

Você apresentará o número OEIS, o código-fonte e o nome de um idioma em que está.

Os ladrões quebram sua submissão se encontrarem um anagrama da submissão original que é executado em um idioma diferente daquele que você já apresentou. Para decifrar uma resposta, eles devem encontrar apenas qualquer idioma e programa que produza a sequência e seja um anagrama do original, não necessariamente a resposta em que você estava pensando.

Assim, você é incentivado a tornar o mais difícil possível encontrar qualquer idioma que execute a tarefa usando sua lista de símbolos.

Pontuação

Isso é então o programa mais curto e sem quebra é o vencedor.

línguas

Os idiomas serão considerados diferentes se as duas soluções propostas não concluírem a tarefa nos dois idiomas. Isso incluirá versões diferentes do mesmo idioma , desde que a solução do policial ou do ladrão não produza a saída correta no idioma do outro.

ou seja, se houver duas soluções 1 e 2 nos idiomas A e B, respectivamente, a solução 2 não deve produzir a saída correta no idioma A e a solução 1 não deve produzir a saída correta no idioma B.

Segurança

Depois que sua submissão for descomplicada por uma semana, você poderá postar sua solução e declarar sua postagem segura. Se depois de uma semana você optar por não postar uma solução, sua resposta ainda poderá estar quebrada.


4
Para navegar através de seqüências OEIS aleatórios para idéias, ir para oeis.org/webcam
mbomb007

Como isso funcionaria com idiomas que gostam de usar sinalizadores para o intérprete, como perl? Eles são desqualificados? Os sinalizadores são contados como parte do código? As bandeiras são "gratuitas" (não incluídas no código ou divulgadas)?
Emigna

O programa oculto pode sair com um erro (depois de produzir a saída)? Isso deve ser indicado na resposta?
Luis Mendo

1
Não sei se isso seria útil para ninguém, mas isto evidencia quaisquer caracteres ausentes restantes ou qualquer queridos duplicados: codepen.io/anon/pen/BQjxRK
Dom Hastings

1
Seria bom se houvesse um snippet de pilha para mostrar respostas sem rachaduras, as mais antigas primeiro.
mbomb007

Respostas:


15

Python 2, 118 bytes, A042545 Rachado

i=input();s=1/(801**.5-28);a=[0,1]
for p in range(i):a+=[a[-2]+a[-1]*int(s)];s=1/(s-int(s))
print a[i]#,,,.//000fhlmo|

Não estava com vontade de implementar uma sequência trivial, por isso decidi usar meu ID de usuário PPCG. Eu escrevi isso no outro idioma primeiro, o que deve lhe dar uma pista sobre o que é esse idioma, embora eu aposto 100 dólares em que isso será quebrado em um idioma de golfe antes de ser quebrado no outro idioma pretendido.

Nota: Devido a erros de precisão de ponto flutuante, isso é preciso apenas até uma entrada de 14. A solução pretendida é da mesma maneira.

Solução pretendida, JavaScript (ES7)

for(i=prompt(),s=1/(801**.5-28),a=[1,0];i--;s=1/(s-n))
  n=s|0,a.unshift(a[1]+a[0]*n);
alert(a[0])  //#+2:[]giiiiinnpt

Funciona da mesma maneira que a solução Python, embora a sequência seja armazenada maior primeiro do que menor, devido ao fato de o JS não suportar indexação negativa.


2
Não consigo fazer com que o caso A042545 (15) funcione. O OEIS diz que é 53000053, mas seu programa diz que é 27666361 (pelo menos na minha máquina).
boboquack

@boboquack A saída para 16é na verdade 53000053, mas depois disso não parece haver termos correspondentes. Eu me pergunto por que ... #
511 ETHproductions

Talvez um erro de ponto flutuante que fique progressivamente pior?
boboquack


1
Droga, eu estava certa! :( Este foi o mais perto que eu tenho: gist.github.com/dom111/bd9be933cb8ccd0e303601bf73d525b6 Agradecimentos para o treino de qualquer maneira, eu precisava |(), mas simplesmente não podia levá-los!
Dom Hastings

10

Flak cerebral, 24 bytes, A000290 , Seguro

Mais uma solução quadrada. Desta vez, não há nada além de parênteses

({(({}[()])()){}[()]}{})

A solução pretendida estava no Brain-Flueue , uma versão do brain-flak que usa filas em vez de pilhas. O programa foi:

({(({})[()]){}}{})[()()]

Os idiomas são considerados distintos porque nenhum dos dois programas é interrompido quando executado no outro idioma.


Isso poderia funcionar em Glypho se a entrada / saída usando código de caracteres é permitido ...
jimmy23013

@ jimmy23013 o que é o Glypho?
Wheat Wizard

6
esolangs.org/wiki/Glypho ((([{}{}{]]}[)))((){))(}
jimmy23013

@WheatWizard Se estiver quebrado, você pode editar a resposta para mostrar isso?
mbomb007

@ mbomb007 Não está rachado
Assistente de Trigo

7

Python 2, 38 bytes, A000290 Rachado por Emigna

def e(X):return X*X
print e(input())##

Provavelmente será muito fácil de quebrar. Estou postando isso principalmente como ponto de partida.

Solução original no CJam:

ri:XX*e#def ()return X
e#pnt (input())


7

CJam , 7 bytes, A005843 Rachado!

ri2*e#^

Esta é uma 2*nsequência básica .

Explicação:

r          e# read input
 i         e# convert to integer
  2*       e# multiply it by 2
    e#^    e# this is a comment that is ignored by the interpreter

Experimente online!


Solução Original, Cenoura

#^i*2er

Cenoura é um esolang criado por mim. Eu parei de desenvolvê-lo há muito tempo. A razão pela qual escolhi isso é porque esperava que seria difícil para outros idiomas comentar as partes desnecessárias do código.

Explicação:

#^            This pushes the input to the stack (anything before the ^ is the stack)
  i           Convert stack to integer
   *2         Multiply it by 2
     er       These are ignored because they are not Carrot commands
              Implicit output

Experimente online!


1
ri#e^*2funcionaria em Jelly se *fosse multiplicação em vez de exponenciação. Tão perto ...
ETHproductions

3

Eu tinha tudo, menos a rpinta. Emocionante ver o código original deste.
Emigna

1
@Emigna eu adicionei o código original
Kritixi Lithos


5

Brain-Flak, 44 bytes, A000290 Rachado

<({({})({}[()])}{}))()()()turpentine/"*"*4splint>

Experimente online!


Solução original, Python 2

print(input()**(len(set("{}{}{}[]()<>"))/4))


Agora estou realmente curioso. Qual foi a sua solução original pretendida? I pode dizer que é python, porque eu vejo len set inpute print(e porque eu sei que você gosta python), mas eu não consigo descobrir como essa quadrados um número
DJMcMayhem

@DrMcMoylex adicionou
Wheat Wizard


5

Python 2, 25 bytes, A000583 , quebrado

Y=input("");print`Y**4`,X

Este programa é encerrado com um erro após a impressão da saída.


Meu código oculto (substancialmente diferente da solução quebrada!):

Na verdade , 25 bytes

4,n`*`Y")ii(*nppruttY;="X

Experimente online!

Explicação:

4,n`*`Y")ii(*nppruttY;="X
4,n                        input, repeat 4 times
   `*`Y                    do * until the stack stops changing (fixed-point combinator)
       ")ii(*nppruttY;="X  push this string and immediately pop and discard it


5

Python, 118 bytes, A042545 , Seguro

i=int(input());s=pow(801.0,0.5);a=[0|0,1]
for Moshprtflmah in range(i):s=1./(s%1);a+=[a[-2]+a[-1]*int(s)];
print(a[i])

Desta vez, funciona em 2 e 3. E não há comentários! O que você vai fazer?

Nota: Como na solução antiga, isso perde precisão após os primeiros 15 termos devido a erros aritméticos de ponto flutuante.

Solução pretendida, JavaScript (ES6)

giiiiinnnnprt:
i=prompt([n=+2]);s=Math.pow(801,.5);for(a=[1,0];i--;a.unshift(a[1]+a[0]*(s|0)))s=1/(s%1)
alert(a[0])   

Embora eu tenha mantido várias versões antigas, de alguma maneira consegui perder essa cópia, mas felizmente juntar as outras não foi muito difícil. Vejo agora que eu tinha um estranho prtem ambos os programas que poderiam ter sido jogados fora. Ah bem.


Pensei em lembrá-lo de que você pode marcar isso como seguro, se desejar.
Assistente de trigo

@ WheatWizard Obrigado, eu adicionei minha solução pretendida.
ETHproductions

5

Python 2, 124 bytes, A144945 , [Seguro]

Se quebrar isso, você ganha uma recompensa de 500 representantes! Muito tarde!

Número de maneiras de colocar 2 rainhas em um tabuleiro de xadrez n X n para que elas se atacem.

Espero que não seja muito fácil. Organizei meu código para que o espaço em branco fique claramente visível. Esses são apenas espaços e novas linhas.

Nota: saídas pretendidas da solução via código de caractere

n=input();print((3+2)*n*n+~0*6*n+1)*n/3;            +6;



























+7+7+7+7+7+7+7+7+7;+++++++++++++++9+9*9*9

Experimente online

Solução pretendida, Headsecks :

r2=ni***p**
(


p((0 ;3+++3;+;/


)





i+++nn
 +)7
n

n+++ 


17+~
 +)7;97++++7


69+9n+ ++7+n 69
 +7+ ++7


**7+++tut

Isso é equivalente ao seguinte programa BF:

>>,[->>>+>>>+>>>+++++<<<<<<<<<]>>>->>>>>>-<<<[[>+<-]>[>>[<<<+>>+>-]<[>+<-]<-]<<<<]>>+++>[-<-[<+<<]<[+[->+<]<+<<]>>>>>]<<<.,.

4

Fuzzy Octo Guacamole, 26 bytes, A070627 [Seguro]

49++*5^pm#]%:"?:.=:#,|"1:@

Casos de teste:

1 -> 1
3 -> 23
5 -> 1

Solução:

^::::|*?1=#@]","%.#49++5pm

Trabalha em Magistack.


Olá! Apenas lembrando que esta resposta pode ser marcada como segura. Não precisa se apressar, mas ninguém o decifrou em uma semana. Bom trabalho, eu estou ansioso para ver uma solução
Assistente de trigo

Legal, vou fazer isso e o outro uma vez quando chegar em casa.
Rɪᴋᴇʀ

3

Pitão, 75 bytes, A004526 Leite rachado

Mais um teste divertido do que qualquer coisa, mas:

/Q/////////////////****22222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2;;;;;

Experimente online!

Solução de leite (convexa):

2/Q2 2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2*2*2*; 2*;                 2; 2; 2;

Experimente online

Solução pretendida (///):

/*///;2/;// ///22/Q//2;///;//;***2222222222222222222222                    

Experimente online

Pega entrada na forma de 2 antes do último ponto e vírgula e gera o número correto de Q's.

A sequência é indexada em 0 (ou seja, 0 é 0, 1 é 0, 2 é 1, ...)

Foram encontrados pequenos erros sintáticos no ///, portanto, editamos todas as soluções.



3

MATL, 7 bytes, A000217 , quebrado

:sp{1}x

A seqüência é n(n+1)/2(números triangulares), a partir de entrada n=1, conforme especificado pelo desafio: 1, 3, 6, 10, ... (Saída para entrada 0não são garantidos para ser o mesmo nos dois programas).

O programa no outro idioma sai com um erro (após produzir a saída correta em STDOUT).

Experimente online!

:            % Push [1 2 ... n], where n is implicit input
 s           % Sum of that array. Gives the desired result
   p         % Product of that. Gives the same number
    {1}      % Push a cell array containing number 1
       x     % Delete it


@ StevenH.Bem feito! Minha solução original foix:ps{}1
Luis Mendo 10/11


3

Python 3, 27 bytes, A000012 , Rachado

Nenhuma entrada desta vez!

if 1:
    if 1:
        print( '1' )

Os recuos são guias, mas não para salvar bytes - eles são necessários para espaços em branco.

Não acho que precise de um link ou explicação do TIO!

(Provavelmente não vai demorar muito para quebrar de alguma forma)

Resposta pretendida (espaço em branco):

-Start-


    if1:if1:print('1')
-End-

(O início e o fim não fazem parte do programa)

Desculpe, esqueci de adicionar que ele imprime no STDERR:

Experimente online!



Eu acho que esse deve ser um espaço em branco, mas isso imprimiria um erro no STDERR, pois faltam os feeds de linha necessários para terminar em [LF] [LF] [LF].
101316 Martin Ender

1
@ leite Não você de novo! : D
boboquack 10/11

1
@boboquack Ele faz o trabalho, mas faz impressão para STDERR (que você pode ver, ativando o modo de depuração no TIO), eo desafio diz que respostas necessário especificar se as gravações linguagem oculta para stderr.
Martin Ender


3

Guacamole octo difuso , 11 bytes, A001844 [Seguro!]

hha02^d+**+

Uma fenda que esse tipo de trabalho é dh*h++^2*0a, em Pyth. Porém, não é o formato de saída correto.

Meu código ainda está lá fora! (e não está em Pyth)

Casos de teste:

0 -> 1
1 -> 5

Solução:

^++d0ah*2*h

Em Jolf.


1
Eu juro, isso parece que foi feito para Jolf, mas eu simplesmente não consigo descobrir o que d...
ETHproductions

Rachou (espero ...)
ETHproductions

@ETHproductions ah, legal. Não tem certeza se isso conta? Veja editar.
Rɪᴋᴇʀ

Meu código imprime uma nova linha, mas não há espaço. O mesmo com o código válido.
Rɪᴋᴇʀ

@EasterlyIrk Apesar do que eu disse, não considero a resposta fornecida. Eu tudo o que disse ainda é verdadeiro, mas não considero a saída válida de espaço em branco e alterarei a questão para refletir isso.
Wheat Wizard


2

JavaScript ES6, 38 bytes, A000290 , Rachado

J=>eval(Array(J).fill(J).join`+`)|2-2;

Este trem quadrado é bem bacana, mas não vai a lugar nenhum rápido. (Entendi? Trem quadrado ? Como em rodas? Não? Ok, tudo bem. Críticos .)


Resposta pretendida: Reticular ( Experimente online! ),

in2Jo;=>eval(Array(J).fill(J).j`+`)|-2
in      take input, convert to number
  2J    raise to the second power
    o;  output and terminate; ignores following chars

2
Seu código está tentando me convencer de que o outro idioma é J: P
ETHproductions



2

2sable , 13 bytes, A002378 , Rachado!

Esperando não ter perdido nada. Calcula a (n) = n × (n + 1) :

>*?"!&)<=@\\}

Minha versão:

?"\>@&*})<\=!

Ou a versão desdobrada:

  ? " \
 > @ & *
} ) < \ =
 ! . . .
  . . .

Observe que o >canto superior esquerdo não é utilizado (exceto o programa 2sable). Eu fiz isso para confundir os ladrões (mas isso obviamente não funcionou haha).

Experimente online!



@MartinEnder Nice job! Atualizarei minha resposta com o envio original :).
Adnan


2

Befunge 93 , 14 bytes, A121377 , Rachado pelo leite !

&52* %68*+ .@Q

Curiosidade: a solução pretendida para isso é a primeira vez que utilizo esse idioma.

Minha solução em Pyth. & @ imprime um erro, mas isso vai para STDERR que, de acordo com o OP, é ignorado.

+%Q*5 2*6 8.&@


2

Python 2, 35 bytes, A048735 , Seguro

print(lambda u:u&u<<1)(input())>>1

A solução original estava na minha própria linguagem de programação Wise .

:<<>&>print(lambda uuu1)(input())1

A maioria dos personagens é irrelevante. Os personagens importantes são os seis primeiros. :cria duas cópias do primeiro item na pilha. <<>bit muda duas vezes para a esquerda e uma vez para a direita, o que equivale a mudar de bits uma vez para a esquerda. &pega o bit a bit e o item superior e segundo (a cópia original e a bit deslocada). Por fim, o >bit muda uma vez para a direita.


2

05AB1E, 5 bytes, A000012 , Seguro

$;$1?

Sequência de 1's. Experimente online

Solução pretendida: Arcyou

1;$$?

Experimente online . Não encontrei documentação para esse idioma, portanto, não tenha uma explicação de como ele funciona exatamente.


Ponto e vírgula estúpida ... Eu quase poderia usar Retina, mas eu não posso ter tanto o 1e ;.
mbomb007

1
Isso não foi quebrado
Wheat Wizard

Parece que agora esta resposta pode ser marcada como segura. Como passei bastante tempo tentando decifrar este, estou ansioso para ver a resposta pretendida.
Assistente de trigo

Esta resposta não deve ser marcada como "aceita" agora?
Mbomb007

1

Python 2, 70 bytes, A000217 Rachado!

Tenho a sensação de que isso não será quebrado no idioma que usei para a outra versão, veremos :)

o=input()
v=0
i=1
while o:
 v+=i
 i+=1
print v


#|  d00->1@@@++-^,,[

Percebi depois que ofusquei o código incorretamente (ele não altera a validade da resposta postada). Aqui está o código que eu comecei no Haystack:

v
0
v
0
i
1
-
>      d0[v
^-1@+@d+1@?,,o|


1

05AB1E , 9 bytes, A000042 Rachado!

1×,1*-^$)

Esta é a representação unária de números naturais (OEIS). Portanto, se a entrada fosse 3, por exemplo, a saída seria 111.

Explicação:

                    # implicit input
1                   # pushes 1 to the stack   
 ×                  # pushes "1" × (the input)
  ,                 # outputs the stack
   1*-^$)           # irrelevant

Experimente online!


Solução Original, Cenoura

1^*$-1×^)

Explicação

1^             Push "1" to the stack
  *            Multiply the string by
   $-1         ...the input (as an integer) minus 1 times
      ×,)      Ignored by the interpreter

O *multiplica a string por(n+1) vezes, de modo que a^*3resulta em aaaae não aaa. É por isso que subtraí 1da entrada.

Só agora eu percebo que isso )tem sido irrelevante nos dois idiomas: D

Experimente online!



Qual era o idioma oculto original?
Assistente de trigo

@ WheatWizard Opa, obrigado por encontrar isso. Eu adicionei o idioma agora
Kritixi Lithos

1

J, 2 bytes, A000290 , Rachado

*~

Bem, pode muito bem começar a procurar os dois participantes. Rende n × n ou n 2 .

solução pretendida, Jolf, 2 bytes

*~

Bem. Sim. Esta é a minha própria linguagem e acho que funciona porque ~procura um caractere estendido, mas não encontra um, então apenas o ignora. ¯ \ _ (ツ) _ / ¯ Ops.



@StevenH. bom trabalho! Eu editei com a solução pretendida.
Conor O'Brien

@ ConorO'Brien sua solução pretendida não era uma solução válida. Para que os idiomas sejam considerados distintos, nem o original nem a solução podem ser poliglotas nos dois idiomas
Assistente de Trigo

@WheatWizard Oh. Isso é estranho.
Conor O'Brien



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.