Давши додатне ціле k > 1
і невід'ємне ціле число i
, k
генеруйте -число (або k
-вимірний вектор) невід'ємних цілих чисел. Для кожного k
, відображення з ℕ в ℕ до , має бути біектівен . Тобто кожен вхід i
повинен створювати різний кортеж, і кожен можливий кортеж повинен бути створений деяким входом i
.
Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції та вивівши результат через STDOUT (або найближчу альтернативу), значення повернення функції або параметр функції (out).
Ви можете використовувати будь-який зручний, однозначний формат плоского списку для виводу.
Ваше рішення не повинно накладати ніяких штучних обмежень на k
і , i
але ви можете припустити , що вони вписуються в рідній розмір цілого вашої мови. Принаймні, ви повинні підтримувати значення до 255
, хоча навіть ваш натурний цілий розмір менший за це.
Для будь-якого 1 < k < 32
, ваш код повинен дати результат за лічені секунди (звичайно, якщо ваша відповідь не підтримує такого великого через попереднє правило, ліміт відповідно коригується). Це не повинно бути проблемою: це можна вирішити цю проблему таким чином, що він працює до 2 128 протягом декількох секунд, але межа є , щоб уникнути відповідей , які на насправді ітерації від до , щоб знайти результат.i < 231
i
0
i
Будь ласка, включіть у відповідь опис обраного вами відображення та обґрунтування того, чому воно бієктивне (це не має бути формальним доказом).
Це код гольфу, найкоротша відповідь (у байтах) виграє.
q~2bW%1$Te]/zWf%2fbp
(протилежний порядок введення)