Desafio
Dada uma base e um índice , termo de saída , definido da seguinte forma:
- é obtido convertendoem basee reinterpretando seus dígitos na base
- A saída deve estar na base
Uma caminhada pela base 5, termo 5, seria:
- .
- x 2 = 21 10 então .
- então .
- então .
- então .
- Nós produzimos a string
"1011"
ou o número inteiro1011
.
Casos de teste
Nota: estes são um indexado
base 2, term 5 --> 1100100111110011010011100010101000011000101001000100011011011010001111011100010000001000010011100011
base 9, term 70 --> 1202167480887
base 8, term 30 --> 4752456545
base 4, term 13 --> 2123103032103331200023103133211223233322200311320011300320320100312133201303003031113021311200322222332322220300332231220022313031200030333132302313012110123012123010113230200132021023101313232010013102221103203031121232122020233303303303211132313213012222331020133
Notas
- Não são permitidas brechas padrão
- Qualquer método de E / S padrão é permitido
- Você pode usar índices diferentes (como 0, 1, 2, etc) para
- Você pode emitir os primeiros termos .
- Como se trata de código-golfe , o código mais curto vence para esse idioma
11
como se estivesse na baseb
e a converteria novamente na base 10, etc.)4a
não seria um número válido na base 104a
, pois interpretaria os dígitos da base 10 como baseb
e converteria na base 10 a cada vez (isto é, o contrário desta pergunta).Respostas:
JavaScript (Node.js) , 40 bytes
Obrigado a @Neil por salvar 5 bytes nesta versão e 2 bytes na versão BigInt
Recebe entrada comot é indexado em 1.
(t)(base)
, ondeExperimente online!
JavaScript (Node.js) , 48 bytes (versão BigInt)
Recebe entrada comot é indexado em 1. Retorna um BigInt.
(t)(base)
, ondeExperimente online!
fonte
eval
na primeira versão?+
economizaria 5 bytes ...BigInt
salva dois bytes na segunda versão, porque você não precisa adicionarn
à string.(b,t,x=11)=>--t?f(b,t,+x.toString(b)):x
é 1 char mais curtof=
(já que a função está se referenciando).n=>b=>g=(x=11n)=>--n?g(BigInt(x.toString(b))):x
:) Se a chamadaf(t)(b)()
for permitida.05AB1E , 5 bytes
Experimente online!
Explicação
Observe que não há necessidade de iniciar explicitamente a sequência em 11 .
Iniciar
base+1
e executar uma iteração extra resultará na primeira iteração fornecendo 11 .fonte
Japonês , 9 bytes
Tente
fonte
Wolfram Language (Mathematica) , 46 bytes
Experimente online!
Ligue com
f[base][t]
. Indexado a 0.fonte
Retina , 67 bytes
Experimente online!Toma entradas separadas por vírgulat (indexado a 0) e b . Como todos os seus cálculos são unários, o tempo limite para números grandes é excedido. Explicação:
Inicializarx0 0= 11 e convertab em unário.
Repitat vezes.
ConvertaxEu em unário.
Converta para a baseb .
Excluab da saída.
fonte
Python 2 , 71 bytes
Experimente online!
Indexado a 0.
fonte
Clojure , 109 bytes
Crédito para MilkyWay90 por remover 10 bytes, detectando espaços desnecessários Crédito para incorporação de ignorância por outro byte de outro espaço desnecessário
Golfe
Ungolfed
Eu acho que o principal local bytes podem ser salvos é a expressão para ... re-mixagem? como quer que isso fosse chamado. Especificamente:
fonte
(if (= t 1)
Perl 6 , 28 bytes
Experimente online!
O índice na sequência é baseado em zero.
fonte
Geléia ,
87 bytesExperimente online!
Explicação
fonte
K (ngn / k) , 13 bytes
Experimente online!
fonte
Pitão , 8 bytes
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 87 bytes
Guardado 5 bytes graças a @KevinCruijssen
Experimente online!
fonte
do-while
para um loop for regular.cérebro , 270 bytes
Experimente online!
Indexado a 0. Presume-se que o número de iterações seja no máximo 255.
Explicação
A fita é apresentada da seguinte forma:
Cada dígito é realmente armazenado como esse dígito mais 1, com 0 reservado para "sem mais dígitos". Durante a conversão da base, os dígitos atualmente sendo trabalhados são movidos uma célula para a direita e a base é movida para a esquerda da área de trabalho atual.
fonte
Carvão , 14 bytes
fonte
Pari / GP , 50 bytes
Experimente online!
fonte
C (gcc) , 59 bytes
Experimente online!
fonte
Groovy , 45 bytes
Experimente online!
Porto da resposta de @ Arnauld
fonte
PHP ,
8375 bytesExperimente online!
Este funcionará apenas com números "pequenos" (por exemplo, não nos casos de teste 1 e 4)
fonte
Japt , 10 bytes
Indexado a 0. Toma
t
como a primeira entrada,b
como a segunda.Tente
fonte
Gaia , 8 bytes
Experimente online!
Leva 0 com base
iterations
entãobase
.fonte
Rubi , 39 bytes
Indexado a zero.
Experimente online!
fonte
Perl 5
-Mbigint -pa
, 65 bytesExperimente online!
fonte