Basis seimbang:
Basis seimbang pada dasarnya sama dengan basis normal, kecuali bahwa digit bisa positif atau negatif, sedangkan dalam basis normal digit hanya bisa positif.
Dari sini, basis basa yang seimbang b
dapat direpresentasikan sebagai balb
- basa yang seimbang 4 = bal4
.
Dalam definisi tantangan ini, rentang angka dalam basis basis yang seimbang b
adalah dari -(k - 1)
ke b - k
, di mana
k = ceil(b/2)
Contoh rentang angka di berbagai basis seimbang:
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
Representasi angka dalam basis seimbang pada dasarnya sama dengan basis normal. Misalnya, representasi angka 27
(basis 10) ke bal4
(basis seimbang 4) adalah 2 -1 -1
, karena
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Tugas:
Tugas Anda adalah, diberi tiga input:
- nomor yang akan dikonversi (
n
)- input ini bisa fleksibel, lihat "Fleksibilitas I / O"
- basis yang
n
saat ini ada di (b
) - basis yang
n
akan dikonversi menjadi (c
)
Mana 2 < b, c < 1,000
.
Kembalikan angka dalam c
representasi basis seimbang n
. Outputnya juga bisa fleksibel.
Program / fungsi harus menentukan panjang dari n
input itu sendiri.
Fleksibilitas I / O:
Input n
dan output Anda dapat direpresentasikan dengan cara berikut:
- definisi bahasa Anda tentang sebuah array
- string, dengan karakter apa saja sebagai pemisah (mis. spasi, koma)
Contoh:
Perhatikan bahwa ini menggunakan array Python sebagai n
dan output. Anda dapat menggunakan apa pun yang cocok dengan bahasa Anda, asalkan sesuai dengan definisi "I / O Fleksibilitas".
[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]
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
[1,1,1,-2,1,0]