Dengeli bazlar:
Dengeli bazlar esasen normal bazlarla aynıdır, ancak basamaklar pozitif veya negatif olabilirken, normal bazlarda rakamlar sadece pozitif olabilir.
Buradan sonra, bazın dengeli bazları - yani dengeli baz 4 = b
olarak temsil edilebilir .balb
bal4
Bu meydan tanımı, baz dengeli bir tabanı basamak aralığı b
ile ilgili olduğu -(k - 1)
için b - k
, burada
k = ceil(b/2)
Çeşitli dengeli bazlarda basamak aralığına örnekler:
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
Dengeli bazlarda sayıların temsili temel olarak normal bazlarla aynıdır. Örneğin, dizi gösterimi 27
(10 tabanı) bal4
(dengelenmiş taban 4) olduğu 2 -1 -1
için,
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Görev:
Göreviniz, üç girdi verildiğinde:
- dönüştürülecek sayı (
n
)- bu giriş esnek olabilir, bkz. "G / Ç Esnekliği"
n
şu anda bulunan taban (b
)n
dönüştürülecek taban (c
)
Nerede 2 < b, c < 1,000
.
Dengeli taban c
gösterimindeki sayıyı döndürür n
. Çıktı da esnek olabilir.
Program / fonksiyon n
girişin kendisinin uzunluğunu belirlemelidir .
G / Ç Esnekliği:
Giriş n
ve çıktınız aşağıdaki şekillerde gösterilebilir:
- dilinizin bir dizi tanımı
- ayırıcı olarak herhangi bir karaktere sahip bir dize (örneğin boşluklar, virgül)
Örnekler:
Bunların bir Python dizisi olarak n
ve çıktı kullandığını unutmayın. "I / O Esnekliği" tanımına uyduğu sürece dilinize uyan her şeyi kullanabilirsiniz.
[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]
Bu kod golf , bayt en kısa kod kazanır!
[1,1,1,-2,1,0]