Erzeugen Sie bei einer positiven k > 1
und einer nicht negativen ganzen Zahl i
ein k
Tupel (oder einen k
dimensionalen Vektor) von nicht negativen ganzen Zahlen. Für jeden k
, die Karte von n zu n k , muss bijektiv sein . Das heißt, jede Eingabe i
sollte ein anderes Tupel erzeugen, und jedes mögliche Tupel muss von einer Eingabe erzeugt werden i
.
Sie können ein Programm oder eine Funktion schreiben, indem Sie eine Eingabe über STDIN (oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis über STDOUT (oder die nächstgelegene Alternative), einen Funktionsrückgabewert oder einen Funktionsparameter (out) ausgeben.
Sie können für die Ausgabe jedes bequeme, eindeutige und flache Listenformat verwenden.
Ihre Lösung sollte keine künstlichen Grenzen setzen k
und i
Sie können davon ausgehen, dass sie in die native Ganzzahlgröße Ihrer Sprache passen. Zumindest müssen Sie Werte bis zu einer 255
nativen Ganzzahlgröße unterstützen, die kleiner ist.
Für alle 1 < k < 32
, sollten Sie Ihren Code ein Ergebnis in wenigen Sekunden erzeugen (natürlich nur , wenn Ihre Antwort nicht unterstützt , dass große aufgrund der vorherigen Regel wird die Grenze entsprechend angepasst). Dies sollte kein Problem sein: Es ist möglich, diese Herausforderung so zu lösen, dass sie in wenigen Sekunden bis zu 2 128 funktioniert , aber das Limit besteht darin, Antworten zu vermeiden, die tatsächlich von bis iterieren , um das Ergebnis zu finden.i < 231
i
0
i
Bitte geben Sie in Ihrer Antwort eine Beschreibung der von Ihnen gewählten Zuordnung und eine Begründung an, warum sie bijektiv ist (dies muss kein formaler Beweis sein).
Dies ist Code Golf, die kürzeste Antwort (in Bytes) gewinnt.
q~2bW%1$Te]/zWf%2fbp
(entgegengesetzte Eingabereihenfolge)