Dado un número entero positivo k > 1y un número entero no negativo i, genera una ktupla (o kvector dimensional) de números enteros no negativos. Para cada k, el mapa de ℕ a ℕ k , debe ser biyectivo . Es decir, cada entrada idebe producir una tupla diferente y cada tupla posible debe ser producida por alguna entrada i.
Puede escribir un programa o función, tomando la entrada a través de STDIN (o la alternativa más cercana), argumento de línea de comando o argumento de función y generando el resultado a través de STDOUT (o la alternativa más cercana), el valor de retorno de la función o el parámetro de función (out).
Puede utilizar cualquier formato de lista plana conveniente, inequívoco para la salida.
Su solución no debería imponer límites artificiales en ky ipero puede suponer que encajan en tamaño entero nativo de su lengua. Por lo menos, debe admitir valores hasta 255, sin embargo, incluso su tamaño entero nativo es más pequeño que eso.
En cualquier caso 1 < k < 32, su código debería producir un resultado en cuestión de segundos (por supuesto, si su respuesta no es tan grande debido a la regla anterior, el límite se ajusta en consecuencia). Esto debería ser ningún problema: es posible resolver este desafío tal que funciona hasta 2 128 en unos pocos segundos, pero el límite está ahí para respuestas Evita que en realidad iterate de que para encontrar el resultado.i < 231i0i
Incluya en su respuesta una descripción de su mapeo elegido y una justificación de por qué es biyectivo (esto no necesita ser una prueba formal).
Este es el código de golf, gana la respuesta más corta (en bytes).
q~2bW%1$Te]/zWf%2fbp(orden de entrada opuesto)