Inspirado por Bake uma fatia de Pi
Desafio
Dada a entrada 3 <= n <= 100
e 3 <= y <= n
, construa uma n x n
matriz da parte decimal de pi
( 14159...
), começando no canto superior esquerdo. Em seguida, pegue o triângulo superior direito do tamanho y x y
e concatene-o juntos. Envie o número resultante.
Por exemplo, para a entrada n = 5
, y = 3
a seguinte matriz é construída
14159
26535
89793
23846
26433
Então, o 3 x 3
triângulo superior direito seria
159
35
3
assim 159353
é a saída.
Entrada
Dois números inteiros - n
representando o tamanho da matriz quadrada dos dígitos de pi e y
representando o triângulo superior direito - em qualquer formato conveniente .
Saída
- O número fatiado e concatenado resultante, impresso / exibido na tela, retornado como uma sequência, etc.
- O espaço em branco à direita / à direita é opcional, desde que não haja espaço em branco na saída (ou seja,
159 35 3
o equivalente seria inválido). - Observe que, como procuramos explicitamente os dígitos
pi
, e não uma aproximação ou cálculo matemático, as respostas não devem arredondar o dígito final da matriz.
Regras
- Isso é código-golfe, portanto todas as regras usuais para golfe se aplicam e o código mais curto (em bytes) vence.
- Um programa ou função completo são aceitáveis.
- As brechas padrão são proibidas.
Exemplos
n y output
-------------
3 3 141923
5 3 159353
6 4 1592589383
6 6 141592535893238643794
20 12 358979323846950288419715820974944628620899211706792306647223172745025559196615
Respostas:
05AB1E , 19 bytes
Usa a codificação CP-1252 .
Experimente online!
Explicação
n=5, y=3
usado por exemplofonte
Python 2 (com sympy), 100 bytes
Sem sympy,
260 246 244 233 231218 bytesIsso emprega "O algoritmo de torneira para Pi" de Stanley Rabinowitz e Stan Wagon.
Os argumentos padrão seriam
a,b,c,d,e,f=0,1,1,1,3,3
produzir o primeiro dígito de pi,3
já que isso não é necessário, o algoritmo é inicializado no ponto anterior a1
ser produzido, o que economiza dois bytesa
eb
é mais longo, pois o resultado não requer fatiamento ei
pode começar em0
ao invés de-1
.Atinge o limite de recursão padrão para o último caso de teste
Utiliza
//
a primeira das divisões para questr(v)
possa ser substituída por`v`
(caso contrário, terminariaL
por um longo tempo).repl.it
Uma versão não recursiva para 232 bytes que também avalia o último caso de teste:
repl.it (o primeiro travessão é um espaço, o segundo travessão é uma guia)
fonte
Mathematica, 82 bytes
fonte
#&@@
vez de[[1]]
.1415926535979323846433832798841971937510749448164899259
; o último9
é o dígito de 100 pi, e o dígito 101th é8
- nenhum arredondamento)MATL,
232227 bytes1 byte salvo graças a @Luis
Experimente Online
Explicação
fonte
Perl, 67 bytes
Requer a opção de linha de comando
-nMbignum=bpi
, contada como 12. A entrada é obtida do stdin.Uso da amostra
fonte
C #,
232 bytes268 bytesEditar:
Originalmente, usei uma string constante para Pi fora do método, mas parece que isso foi trapaça. Eu tive que usar o valor C # Math.PI, que só tem 14 casas decimais, portanto, o maior
m
valor alto que posso usar é 3. Voltar para a área de desenho ...Golfe:
Ungolfed:
Não é a resposta mais curta, mas fiquei feliz por ter resolvido esta ...
Saída de teste:
5 3 1593536 4 15925893836 6 14159253589323864379420 12 358979323846950288419715820974944628620899211706792306647223172745025559196615fonte
p
e ele não estiver embutido no idioma (o que tenho certeza de que não é), será necessário incluir isso na pontuação de bytes.