Hintergrund
Eine bijektive Basis- b- Nummerierung , wobei b eine positive ganze Zahl ist, ist eine bijektive Positionsnotation, die b- Symbole mit zugeordneten Werten von 1 bis b verwendet .
Im Gegensatz zu seinem nicht-bijektiven Gegenstück hat kein Symbol den Wert 0 . Auf diese Weise hat jede nicht negative ganze Zahl n eine eindeutige Darstellung in der bijektiven Basis b .
Zu den gängigen bijektiven Numerierungen gehören die unäre bijektive Basis 2 (die in der Lauflängencodierung von bzip2 verwendet wird ) und die bijektive Basis 26 (die zum Nummerieren von Spalten in Tabellen verwendet wird).
Definition
In dieser Herausforderung definieren wir die Menge M von Symbolen als
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<=>
und eine Funktion i von M zu der natürlichen Zahl, so dass i ('1') = 1,…, i ('>') = 64 .
Bei einer Basis b zwischen 1 und 64 (beide inklusive) definieren wir, dass jede nicht negative ganze Zahl n der Zeichenkette a k … a 0 entspricht , die aus Symbolen von M besteht , so dass n = b k i (a k ) + ist … + B 0 i (a 0 ) .
Diese Entsprechung ist klar definiert und bijektiv. Da eine leere Summe als 0 definiert ist , kann die Ganzzahl 0 als leere Zeichenfolge codiert werden.
Aufgabe
Akzeptiere drei Zeichenketten als Eingabe:
Eine Eingabebasis b zwischen 1 und 64 , codiert als bijektive Basis 64- Zeichenfolge.
Eine nicht negative ganze Zahl n , die als bijektive Basis b codiert ist .
Eine Ausgangsbasis B zwischen 1 und 64 , codiert als bijektive Basis 64- Zeichenfolge.
Codieren Sie bei diesen drei Eingaben n als bijektiven Basis- B- String.
Testfälle
Alle Testfälle spezifizieren die Eingabe in der Reihenfolge , b , n , B .
Input: "4" "" "8"
Output: ""
Input: "A" "16" "2"
Output: "1112"
Input: "2" "122" "A"
Output: "A"
Input: "3" "31" "1"
Output: "1111111111"
Input: ">" "Fe" "a"
Output: "RS"
Regeln
Sie können die drei Zeichenfolgen in beliebiger Reihenfolge lesen, z. B. als Array von Zeichenfolgen, als Zeichenfolgendarstellung, verkettet oder durch Trennzeichen Ihrer Wahl getrennt.
Wenn Sie die Ausgabe auf STDOUT drucken möchten, können Sie nur die Symbole und (optional) eine nachgestellte Newline drucken.
Grundkonvertierungs-Built-Ins aller Art sind erlaubt.
Es gelten die Standardregeln für Code-Golf .