Étant donné un entier positif k > 1
et un entier non négatif i
, générez un k
-tuple (ou k
vecteur -dimensionnel ) d'entiers non négatifs. Pour tout k
, la carte de ℕ à ℕ k , doit être bijective . Autrement dit, chaque entrée i
doit produire un tuple différent, et chaque tuple possible doit être produit par une entrée i
.
Vous pouvez écrire un programme ou une fonction, en prenant une entrée via STDIN (ou l'alternative la plus proche), un argument de ligne de commande ou un argument de fonction et en sortant le résultat via STDOUT (ou l'alternative la plus proche), la valeur de retour de la fonction ou le paramètre de la fonction (out).
Vous pouvez utiliser n'importe quel format de liste plat pratique et sans ambiguïté pour la sortie.
Votre solution ne devrait pas imposer de limites artificielles k
et i
vous pouvez supposer qu'elles correspondent à la taille entière native de votre langue. À tout le moins, vous devez prendre en charge des valeurs jusqu'à 255
, cependant, même votre taille entière native est plus petite que cela.
Pour tout 1 < k < 32
, votre code devrait produire un résultat en quelques secondes (bien sûr, si votre réponse ne prend pas en charge cette taille en raison de la règle précédente, la limite est ajustée en conséquence). Cela ne devrait pas poser de problème: il est possible de résoudre ce défi de telle sorte qu'il fonctionne jusqu'à 2 128 en quelques secondes, mais la limite est là pour éviter les réponses qui itèrent réellement de à pour trouver le résultat.i < 231
i
0
i
Veuillez inclure dans votre réponse une description de la cartographie que vous avez choisie et une justification de la raison pour laquelle elle est bijective (cela n'a pas besoin d'être une preuve formelle).
C'est le code golf, la réponse la plus courte (en octets) l'emporte.
q~2bW%1$Te]/zWf%2fbp
(ordre d'entrée opposé)