Ausgewogene Grundlagen:
Ausgeglichene Basen sind im Wesentlichen die gleichen wie normale Basen, außer dass die Ziffern positiv oder negativ sein können, während in normalen Basen die Ziffern nur positiv sein können.
Ab hier können ausgeglichene Basen der Base b
als balb
- ausgeglichene Base 4 = dargestellt werden bal4
.
In der Definition dieser Herausforderung ist der Bereich der Ziffern in einer ausgeglichenen Basis der Basis b
von -(k - 1)
bis b - k
, wo
k = ceil(b/2)
Beispiele für den Ziffernbereich in verschiedenen symmetrischen Basen:
bal10:
k = ceil(10/2) = 5
range = -(5 - 1) to 10 - 5 = -4 to 5
= -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
bal5:
k = ceil(5/2) = 3
range = -(3 - 1) to 5 - 3 = -2 to 2
= -2, -1, 0, 1, 2
Die Darstellung von Zahlen in ausgeglichenen Basen ist grundsätzlich dieselbe wie bei normalen Basen. Zum Beispiel ist die Darstellung der Zahl 27
(Basis 10) bis bal4
(ausgeglichene Basis 4) 2 -1 -1
, weil
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Aufgabe:
Ihre Aufgabe besteht aus drei Eingaben:
- die umzurechnende Zahl (
n
)- Dieser Eingang kann flexibel sein, siehe "E / A-Flexibilität"
- die Basis, die
n
derzeit in (b
) ist - die Basis
n
, zu der konvertiert werden soll (c
)
Wo 2 < b, c < 1,000
.
Geben Sie die Zahl in ausgeglichener Basisdarstellung c
von zurück n
. Die Ausgabe kann auch flexibel sein.
Das Programm / die Funktion muss die Länge von n
aus der Eingabe selbst bestimmen .
I / O-Flexibilität:
Ihre Ein- n
und Ausgabe kann folgendermaßen dargestellt werden:
- Die Definition eines Arrays in Ihrer Sprache
- eine Zeichenfolge mit einem beliebigen Zeichen als Trennzeichen (z. B. Leerzeichen, Kommas)
Beispiele:
Beachten Sie, dass diese ein Python-Array als n
und die Ausgabe verwenden. Sie können alles verwenden, was zu Ihrer Sprache passt, solange es in die Definition von "I / O Flexibility" passt.
[2, -1, -1] 4 7 = [1, -3, -1]
[1, 2, 3, 4] 9 5 = [1, 2, 2, -1, 2]
[10, -9, 10] 20 5 = [1, 1, 1, -2, 1, 0]
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
[1,1,1,-2,1,0]