Dato un numero intero positivo k > 1e un numero intero non negativo i, genera una ktupla (o kvettore tridimensionale) di numeri interi non negativi. Per ogni k, la mappa da ℕ a ℕ k , deve essere biunivoca . Cioè, ogni input idovrebbe produrre una tupla diversa e ogni possibile tupla deve essere prodotta da un input i.
È possibile scrivere un programma o una funzione, prendendo l'input tramite STDIN (o l'alternativa più vicina), l'argomento della riga di comando o l'argomento della funzione e producendo il risultato tramite STDOUT (o l'alternativa più vicina), il valore di ritorno della funzione o il parametro della funzione (out).
È possibile utilizzare qualsiasi formato elenco semplice, chiaro e non ambiguo per l'output.
La tua soluzione non dovrebbe imporre limiti artificiali ke, ituttavia, potresti supporre che si adattino alla dimensione intera nativa della tua lingua. Per lo meno, è necessario supportare valori fino a 255, anche se anche la dimensione intera nativa è inferiore a quella.
In ogni caso 1 < k < 32, il tuo codice dovrebbe produrre un risultato in pochi secondi (ovviamente, se la tua risposta non supporta così tanto a causa della regola precedente, il limite viene adattato di conseguenza). Questo dovrebbe essere alcun problema: è possibile risolvere questo problema in modo tale che funziona fino a 2 128 nel giro di pochi secondi, ma il limite è lì per risposte Evitare che in realtà iterare da a per trovare il risultato.i < 231i0i
Includi nella risposta una descrizione della mappatura scelta e una giustificazione del motivo per cui è biiettiva (questa non deve essere una prova formale).
Questo è il codice golf, la risposta più breve (in byte) vince.
q~2bW%1$Te]/zWf%2fbp(ordine di input opposto)