Bases équilibrées:
Les bases équilibrées sont essentiellement les mêmes que les bases normales, sauf que les chiffres peuvent être positifs ou négatifs, tandis que dans les bases normales, les chiffres ne peuvent être que positifs.
A partir de là, les bases équilibrées de la base b
peuvent être représentées comme balb
- donc la base équilibrée 4 = bal4
.
Dans la définition de ce défi, la plage de chiffres dans une base de base équilibrée b
est de -(k - 1)
à b - k
, où
k = ceil(b/2)
Exemples de plage de chiffres dans diverses bases équilibrées:
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
Les représentations des nombres dans les bases équilibrées sont fondamentalement les mêmes que les bases normales. Par exemple, la représentation du nombre 27
(base 10) à bal4
(base équilibrée 4) est 2 -1 -1
, car
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Tâche:
Votre tâche est, compte tenu de trois entrées:
- le nombre à convertir (
n
)- cette entrée peut être flexible, voir "Flexibilité des E / S"
- la base qui
n
est actuellement en (b
) - la base qui
n
doit être convertie en (c
)
O 2 < b, c < 1,000
..
Renvoie le nombre en c
représentation de base équilibrée de n
. La sortie peut également être flexible.
Le programme / fonction doit déterminer la longueur de n
l'entrée elle-même.
Flexibilité d'E / S:
Vos entrées n
et sorties peuvent être représentées de ces manières:
- la définition de votre langue d'un tableau
- une chaîne, avec n'importe quel caractère comme séparateur (par exemple des espaces, des virgules)
Exemples:
Notez que ceux-ci utilisent un tableau Python en tant que n
et la sortie. Vous pouvez utiliser ce qui convient à votre langue, tant qu'il correspond à la définition de la «flexibilité des E / S».
[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]
C'est le code-golf , donc le code le plus court en octets gagne!
[1,1,1,-2,1,0]