Zrównoważone bazy:
Zrównoważone zasady są zasadniczo takie same jak normalne zasady, z tym że cyfry mogą być dodatnie lub ujemne, podczas gdy w normalnych zasadach cyfry mogą być tylko dodatnie.
Odtąd zrównoważone podstawy bazy b
mogą być przedstawiane jako balb
- tak zrównoważona baza 4 = bal4
.
W definicji tego wyzwania zakres cyfr w zbalansowanej bazie b
jest od -(k - 1)
do b - k
, gdzie
k = ceil(b/2)
Przykłady zakresu cyfr w różnych zbalansowanych bazach:
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
Reprezentacje liczb w zbalansowanych zasadach są zasadniczo takie same jak normalne zasady. Na przykład reprezentacja liczby 27
(podstawa 10) do bal4
(zrównoważona podstawa 4) to 2 -1 -1
, ponieważ
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Zadanie:
Twoim zadaniem jest, biorąc pod uwagę trzy dane wejściowe:
- liczba do konwersji (
n
)- to wejście może być elastyczne, patrz „Elastyczność we / wy”
- baza, która
n
jest obecnie w (b
) - podstawa, która
n
ma zostać przekonwertowana na (c
)
Gdzie 2 < b, c < 1,000
.
Zwraca liczbę w zrównoważonej c
reprezentacji podstawowej dla n
. Dane wyjściowe mogą być również elastyczne.
Program / funkcja musi określać długość n
samego wejścia.
Elastyczność we / wy:
Twój wkład n
i wynik można przedstawić w następujący sposób:
- twoja językowa definicja tablicy
- ciąg znaków, z dowolnym znakiem jako separatorem (np. spacje, przecinki)
Przykłady:
Zauważ, że używają one tablicy Python jako n
i danych wyjściowych. Możesz używać wszystkiego, co pasuje do twojego języka, o ile mieści się ono w definicji „elastyczności we / wy”.
[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]
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
[1,1,1,-2,1,0]