Saída / impressão deste bloco de texto:
1234567890
2468013579
3691470258
4815926037
5049382716
6172839405
7306295184
8520741963
9753108642
0987654321
Os formatos aceitáveis incluem:
- Trailing newlines / espaço em branco
- Lista de strings
- Lista de listas de caracteres
- Lista de listas de números inteiros
No entanto, a lista de números inteiros não é aceitável porque a última linha não é um número inteiro.
Isso é código-golfe . A resposta mais curta em bytes vence. Aplicam-se brechas padrão .
code-golf
math
kolmogorov-complexity
Freira Furada
fonte
fonte
Python 2 ,
4947 bytesExperimente online!
fonte
Geléia , 7 bytes
Experimente online!
Usa o algoritmo de Martin.
fonte
MATL ,
1211 bytesGuardou um byte graças a Luis. Eu continuo esquecendo que
&
é um atalho para duplicar e transpor.Experimente online!
Usando o algoritmo de @ Martin:
x*y % 11 % 10
Explicação:
O mesmo bytecount:
fonte
t!*
por&*
APL (Dyalog) , 13 bytes
Experimente online!
Um porto da minha resposta do Mathematica .
fonte
CJam (17 bytes)
Demonstração online
fonte
Retina , 59 bytes
A contagem de bytes assume a codificação ISO 8859-1.
Experimente online!
Explicação
Outra implementação do ...% 11% 10 . A parte divertida de fazer isso com um regex é que podemos cuidar dos dois cálculos de módulo de uma só vez.
Inicialize a string para dez
1
s.Substitua cada uma delas por vírgula, uma e o prefixo na frente dessa. Isso dá
,1,11,...,1111111111
, ou seja, um alcance unário.Agora substitua cada um dos elementos do intervalo pela sequência inteira seguida por um avanço de linha. Isso nos fornece uma grade de 10x10 de números unários, indicando a coluna atual.
Combine cada um
1
e determine em qual linha está repetindo o grupo um várias vezes. Substitua1
por tantos1
s. Isso multiplica os valores em cada linha pelo índice baseado em 1 da linha.Agora vamos fazer o mod 11, o mod 10 em uma etapa. Para fazer o mod 11 , normalmente removíamos tudo
1{11}
da string a ser deixada com o restante. E depois removeríamos1{10}
depois disso. Mas se apenas removermos dez1
s mais outro, se possível, a ganância do mecanismo de expressão regular fará o mod 11 por nós o máximo de tempo possível; caso contrário, tentará pelo menos o mod 10 .Finalmente, apenas convertemos cada número em decimal, substituindo-o pelo seu comprimento.
fonte
05AB1E , 14 bytes
Experimente online!
Usa o algoritmo de Martin, como de costume.
fonte
Haskell, 43 bytes
fonte
Javascript (ES6),
70 6456 bytesEconomizou 4 bytes graças a Shaggy e 8 bytes graças a Arnauld.
fonte
_=>[...a=Array(10)].map((_,x)=>[...a].map((_,y)=>(x+1)*++y%11%10))
. Você me salvar 4 bytes, eu te salvar 4 bytes :)map()
e mais 3 bytes usando em1e9+''
vez deArray(10)
. Isso leva a_=>[...1e9+''].map((_,x,a)=>a.map((_,y)=>-~x*++y%11%10))
.1e9
truque. Eu não conhecia esse. Pensei em usar o terceiro argumento, mas por algum motivo não o usei.Japonês ,
161211 bytesAcontece que esta foi a minha resposta 200 (não excluída) aqui :)
Parece que esta é a mesma fórmula que Martin viu .
Teste (
-R
sinalize apenas para fins de visualização)Explicação
fonte
-R
bandeiraJava 8, 84 bytes
Usa o mesmo algoritmo da resposta do Mathematica do @MartinEnder : 1-indexado
x*y%11%10
.Explicação:
Experimente aqui.
fonte
Python 2 ,
5852 bytes-6 bytes graças a offcialaimm.
Utiliza o algoritmo de Martin, que não entendo como ele o criou tão rápido. o0
Experimente online!
fonte
r=range(1,11)
salva 6 bytesPitão, 13 bytes
Experimente aqui
-1 graças a KarlKastor .
Vamos duuuuuuupe!
fonte
e
vez de% T
R , 19 bytes
Experimente online!
O mínimo de código R com aparência de "R" que eu já escrevi. Usa o mesmo algoritmo da resposta de Martin Ender (e quase todas as outras respostas também).
x %o% y
é o mesmo queouter(x, y)
.fonte
Carvão ,
30 2919 bytesExperimente online!
Usa a fórmula de Martin .
fonte
»
enquanto você pode usar, emω
vez de””
salvar um monte de bytes, use⸿
como ele se tornaFχ«FχI﹪﹪×⁺¹ι⁺¹κ¹¹χ⸿
. (Antes que eu sabia sobre o⸿
que eu teria sugeridoJ⁰ι
que ainda teria salvou um número de bytes.)⸿
operador é o reverso, o que ele faz no final do seu código sem argumentos? Está documentado?⮌
é o operador Reverso,⸿
é omove cursor to start of next line
caractere (como¶
mas pode estar em uma sequência separada).C (gcc) , 70 bytes
Experimente online!
fonte
QBIC , 17 bytes
Obviamente, isso usa o método de Martin. É traduzido para esse código QBasic .
Explicação
fonte
C #, 81 bytes
O mesmo algoritmo da maioria das outras respostas e essencialmente a porta C # da resposta do @Kevins Java.
fonte
Retina , 79 bytes
Experimente online!
fonte
GolfScript ,
3724 bytesExperimente online!
-13, graças a um truque inteligente sugerido por Martin Ender .
fonte
{
->;
,}
->`
), você pode pelo menos largar o primeiro[
.{){\)*11%10%}+10,/n}10,/
/
. ;)int blk +
->{int space contents-of-blk}
.+
truque ... embora eu tenha alterado um pouco o código #C (gcc) , 59 bytes
Experimente online!
fonte
Retina ,
9385 bytesExperimente online!
fonte
Pyke, 15 bytes
Experimente aqui!
fonte
Pyke, 13 bytes
Experimente aqui!
fonte
PHP , 54 bytes
Experimente online!
PHP , 56 bytes
Experimente online!
fonte
()
.for(;<0>$y++||10>$x+=$y=print"\n";)echo($x+1)*$y%11%10;
for($x=1;11>++$y||11>$x+=$y=print"\n";)echo$x*$y%11%10;
J , 27 bytes
Experimente online!
Usa o mesmo truque da resposta Mathematica de Martin Ender .
fonte
TECO, 45 bytes
Uma implementação (bastante) direta da resposta de Rod's Python.
O uso de inserções terminadas com <ESC> e um caractere de controle para o comando ^ T economizaria outros
trêscinco bytes, à custa da legibilidade.O uso da fórmula mod-11 / mod-10 de Martin na verdade aumenta em 43 bytes usando os controles para ^ A e ^ T, principalmente porque o TECO não possui um operador mod.
O Mod 11 é feito de maneira contínua, incrementando o número em qn em -11 sempre que excede 10. A
qn\r0a^T
sequência insere o número no buffer de edição como dígitos decimais, reverte o último dígito, recupera-o do buffer e digita-o, essencialmente fazendo mod-10.Eu esperava que fosse mais curto. Ah bem.
fonte