Bases equilibradas:
Las bases equilibradas son esencialmente las mismas que las bases normales, excepto que los dígitos pueden ser positivos o negativos, mientras que en las bases normales los dígitos solo pueden ser positivos.
A partir de aquí, las bases de equilibrado de la base b
pueden ser representados como balb
- por lo equilibrado de base 4 = bal4
.
En la definición de este desafío, el rango de dígitos en una base de base equilibrada b
es de -(k - 1)
a b - k
, donde
k = ceil(b/2)
Ejemplos del rango de dígitos en varias bases balanceadas:
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
Las representaciones de números en bases balanceadas son básicamente las mismas que las bases normales. Por ejemplo, la representación del número 27
(base 10) a bal4
(base equilibrada 4) es 2 -1 -1
, porque
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Tarea:
Su tarea es, dado tres entradas:
- el número a convertir (
n
)- esta entrada puede ser flexible, consulte "Flexibilidad de E / S"
- la base que se
n
encuentra actualmente en (b
) - la base que
n
se convertirá a (c
)
Donde 2 < b, c < 1,000
.
Devuelve el número en c
representación base equilibrada de n
. La salida también puede ser flexible.
El programa / función debe determinar la longitud de n
la entrada en sí.
Flexibilidad de E / S:
Su entrada n
y salida se pueden representar de estas maneras:
- la definición de su idioma de una matriz
- una cadena, con cualquier carácter como separador (por ejemplo, espacios, comas)
Ejemplos:
Tenga en cuenta que estos usan una matriz Python como n
y la salida. Puede usar lo que se ajuste a su idioma, siempre que se ajuste a la definición de "Flexibilidad de 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]
Este es el código de golf , por lo que gana el código más corto en bytes.
[1,1,1,-2,1,0]