Seção de ladrões
A seção de policiais pode ser encontrada aqui .
Desafio
Sua tarefa é superar os envios dos policiais na mesma linguagem e na mesma versão (por exemplo, Python 3.5 ≠ Python 3.4 , para que isso não seja permitido). Um envio é ultrapassado quando o comprimento em bytes é menor que o envio original. Você só precisa jogar no mínimo 1 byte para obter uma submissão. Por exemplo, se a tarefa era executar 2 × n , e a submissão era a seguinte:
print(2*input())
Você pode superar o policial fazendo o seguinte:
print 2*input()
Ou até mesmo isso (uma vez que os lambda são permitidos):
lambda x:2*x
Poste isso com o seguinte cabeçalho:
##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link}
Por exemplo:
Python 2,
1612 bytes, Adnan (+ link para envio)lambda x:2*x
Calcula A005843 , (deslocamento = 0).
Nesse caso, você quebrou o envio.
Pontuação
A pessoa com quem mais rachou as submissões é o vencedor.
Regras
- O envio do crack deve estar no mesmo idioma do envio do policial.
- A mesma entrada deve resultar na mesma saída (então a (2) = 4 deve permanecer 4).
- Para idiomas como o Python, você pode importar bibliotecas padrão incluídas no idioma. (Então, não numpy / sympy etc.)
- Entrada e saída estão em decimal (base 10).
Nota
Este desafio está terminado. O vencedor da seção de ladrões é o feersum . As pontuações finais para o CnR são mostradas abaixo:
- feersum : 16 rachaduras
- Dennis : 12 rachaduras
- Freira com vazamento : 6 rachaduras
- Lynn : 4 rachaduras
- milhas : 3 rachaduras
- Martin Ender : 2 rachaduras
- Emigna : 2 rachaduras
- jimmy23013 : 1 rachadura
- Sp3000 : 1 rachadura
- randomra : 1 crack
- alefalpha : 1 rachadura
- nimi : 1 crack
- Melancia destrutível : 1 rachadura
- Dom Hastings : 1 crack
(**)&2
,. Eu tentei2&(**)
e falhei. :((**)&2
funciona muito bem para mim: / mas isso também funciona.Gelatina ,
54 bytes , George V. WilliamsExperimente aqui.
Um recurso oculto!
Se bem me lembrei,
ÆḊ
(A) = sqrt (det (AA T )) é n! vezes a medida de Lebesgue n dimensional de um simplex formado por n ponto de entrada e a origem em m espaço dimensional. Quando n = 1, degenera para a distância euclidiana. Não é tão estranho, afinal ...fonte
Ḋ
eḞ
está no intervalo UTF-16. Isso tornaria esta solução 6 bytes assumindo codificação heterogênea e 8 bytes assumindo codificação homogênea. Pedindo honestamente aqui.Hexagonia ,
9133 bytes, AzulDesdobrado:
Experimente online!
Ainda parece um pouco jogável, mas pensei em publicá-lo antes que o FryAmTheEggman me derrotasse. ;)
Explicação
Aqui estão alguns caminhos de execução com código de cores:
No entanto, estes são desnecessariamente complicados devido ao golfe. Aqui está exatamente o mesmo código com um layout mais saudável:
Isso é melhor. E, finalmente, aqui está um diagrama de memória, onde a seta vermelha indica a posição e a orientação inicial do ponteiro de memória (MP):
A essência é que estou iterativamente computação números de Fibonacci sobre as três bordas marcadas f (i) , f (i + 1) e f (i + 2) mantendo a leitura da iteração nas bordas A , B e C . Enquanto isso, as funções dessas arestas são trocadas ciclicamente após cada iteração. Vamos ver como isso acontece ...
O código inicia no caminho cinza, que faz algumas configurações iniciais. Observe que f (i) já tem seu valor inicial correto de
0
.Agora o caminho verde é o loop principal.
_
e>
são apenas espelhos.Dessa maneira, o MP se move em torno do triplo interior das arestas, computando números sucessivos de Fibonacci até
n
chegar a zero. Finalmente, o caminho vermelho é executado:Diagramas gerados com HexagonyColorer e EsotericIDE de Timwi .
fonte
Haskell,
54 bytes, xnorCaril simples.
fonte
Stack Cats,
1413 bytes, feersumcom os
-nm
sinalizadores para +4 bytes. Experimente online!Ok, esse loop foi louco. Tentei várias abordagens, como forçar bruto sobre um alfabeto reduzido e forçar bruto
3x+2
ou5x+4
tentar estendê-lo, mas nunca esperei que a solução realmente contivesse um loop.A melhor maneira de ver como isso funciona é adicionar um
D
sinalizador para depuração (execute com-nmD
) e ativar a depuração no link TIO acima. Um{}
loop lembra o topo da pilha no início do loop e sai quando o topo da pilha é esse valor novamente. O interior do loop faz algumas subtrações e ciclos divertidos dos três principais elementos da pilha, e é assim que o loop é executado em tantas iterações.fonte
Sesos,
1411 bytes, Freira com vazamentoCalcula n 2 . Experimente aqui.
Despejo hexagonal:
Da montagem:
fonte
1 + 3 + … + (2n–1)
em vez den × n
:)Lamentavelmente,
776759 bytes, Melancia destrutívelEu tentei ler o código fonte desse idioma, mas era muito confuso. Por um lado,
ip[1]
é um número de linha enquantoip[0]
é o número da coluna, enquanto ascp
coordenadas são usadas ao contrário. No entanto, às vezes o valor decp
é atribuídoip
. Desisti de tentar entender o que o programa está fazendo e encontrei uma maneira de codificar a sequência idêntica de instruções usando menos barras.fonte
Brachylog ,
2721 bytes, FatalizarExperimente online!
fonte
J,
1712 bytes, milhasPraticamente o mesmo que o original, apenas mais jogado. :)
i:
ter+1
alcance comparado ai.
é útil (e estranho). Se você usari.
aquin=0
será incorreto, mas felizmentei:
resolve isso.Experimente online aqui.
fonte
i:
sendo zeros para valores negativos. Minha versão foi+/@(]!2*-)i.,]
.M,
106 bytes, DennisDada n , ele calcula o n º -level fatorial de n . Este foi um exercício divertido!
O código é capaz de executar como Jelly para que você possa experimentá-lo online .
Explicação
fonte
Boneco de neve,
5044 bytes, Maçaneta de portaExperimente online!
fonte
((}#1nG|#2nMNdE0nR2aGaZ::nM;aF;aM:nS;aF,nM*))
.Haskell,
1514 bytes, xnorPassei algumas horas infrutíferas aprendendo a decifrar a sintaxe "sem sentido" ...
until
Encontrei isso em seu lugar.Ou para 13 bytes menos melíferos
until odd(+1)
,.fonte
Python 2,
4340, xsotfonte
Pyke,
119 bytes, peixes enlameadosExperimente aqui!
Como funciona
fonte
hV~oX*o+
. Minha resposta de 5 bytes foiSDmX^
~o
é legal. Eu não tenho idéia do queSDmX^
faz embora.m
afeta apenas oX
e não o^
? Isso explica muito.m
e similares usam apenas o próximo nó. Algum comentário sobre meus documentos, etc.?05AB1E ,
74, Emignafonte
Geléia,
2221 bytes, DennisPassei várias horas lendo o código-fonte do Jelly para o último, então é melhor usar essa "habilidade". Espero que o @Dennis compartilhe conosco suas descobertas matemáticas, permitindo uma fórmula mais curta (supondo que exista algo e não apenas truques estranhos de geléia!).
fonte
J,
2019 bytes, milhasIsso calcula o produto como uma soma dos números de Fibonacci ao quadrado, calculados como uma soma dos coeficientes binomiais.
Felizmente, o próprio @miles postou o código para gerar números de Fibonacci neste comentário .
fonte
Acc !! ,
526525 bytes, DLoscNão tenho ideia de como isso funciona, mas pude detectar uma pequena melhoria.
fonte
Haskell, 10 bytes, xnor
Exemplo de uso:
map ( gcd=<<(2^) ) [1..17]
->[1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1]
.Como funciona: A partir da página OEIS vemos que
a(n) = gcd(2^n, n)
ou escritas na sintaxe Haskell:a n = gcd (2^n) n
. As funções com o padrãof x = g (h x) x
pode ser transformado de livre-ponto pela função=<<
:f = g =<< h
, portanto,gcd=<<(2^)
o que se traduz para trásgcd (2^x) x
.fonte
Sesos,
149 bytes, Freira comCalcula o mod 16 . Experimente aqui.
Hex:
Montagem:
fonte
Python,
3917 bytes, Melancia destrutívelfonte
05AB1E,
94 bytes, EmignaExperimente online!
Calcula esta função:
fonte
Hexagonia ,
76 bytes, AdnanDesdobrado:
Experimente online!
Mesma idéia, layout ligeiramente diferente.
fonte
MATL,
1110 bytes, Luis MendoEm vez de fazer -1 ^ length (array), ele converte os elementos em valores booleanos (que são sempre 1), os nega e pega o produto dos elementos.
fonte
Jelly,
1110, DennisVersão vetorizada da mesma abordagem.
Experimente online!
fonte
05AB1E,
108 bytes, AdnanExperimente online .
fonte
µNÂʽ
por 5 bytes. Presumivelmente a versão secreta.Brachylog,
1110 bytes, FatalizarExperimente online!
Explicação
Brachylog é uma linguagem derivada do Prolog, cuja maior habilidade é provar as coisas.
Aqui, provamos estas afirmações:
fonte
Geléia,
98 bytes, DennisDesculpa! Não consegui encontrar a solução pretendida.
Isso depende do fato de que
C(n+k-1, k)
é o número de maneiras de escolherk
valoresn
com a substituição.Nota: Isso é ineficiente, pois gera os conjuntos possíveis para contá-los, portanto, evite usar grandes valores de n online.
Experimente online ou verifique até n .
Mais tarde, encontrei outra versão de 8 bytes que é eficiente o suficiente para calcular n = 1000. Isso calcula os valores usando o coeficiente binomial e evita a geração das listas.
Experimente online ou verifique atén .
Explicação
fonte
M,
98 bytes, Dennisfonte
QBasic,
3029 bytes, DLoscfonte