Dado um número inteiro positivo k > 1e um número inteiro não negativo i, gere um número k-tuplo (ou kvetor dimensional) de números inteiros não negativos. Para cada k, o mapa de ℕ para ℕ k , deve ser bijective . Ou seja, toda entrada ideve produzir uma tupla diferente, e toda tupla possível deve ser produzida por alguma entrada i.
Você pode escrever um programa ou função, recebendo entrada via STDIN (ou alternativa mais próxima), argumento da linha de comando ou argumento da função e emitindo o resultado via STDOUT (ou alternativa mais próxima), valor de retorno da função ou parâmetro da função (saída).
Você pode usar qualquer formato de lista simples, conveniente e inequívoco para a saída.
Sua solução não deve impor limites artificiais ke, imas você pode assumir que eles se encaixam no tamanho inteiro nativo do seu idioma. No mínimo, você deve suportar valores de até 255, mesmo que o tamanho inteiro nativo seja menor que isso.
De qualquer forma 1 < k < 32, seu código deve produzir um resultado em questão de segundos (é claro, se sua resposta não suportar esse tamanho devido à regra anterior, o limite será ajustado de acordo). Este deve ser nenhum problema: é possível resolver este desafio de tal forma que ele funciona até 2 128 em poucos segundos, mas o limite é de lá para respostas a evitar que, na verdade, iterate a partir de para encontrar o resultado.i < 231i0i
Inclua na sua resposta uma descrição do mapeamento escolhido e uma justificativa para o motivo de ele ser bijetivo (isso não precisa ser uma prova formal).
Este é o código golf, a resposta mais curta (em bytes) vence.
q~2bW%1$Te]/zWf%2fbp(ordem inversa de entrada)