Untuk memeriksa apakah daftar bilangan bulat non-negatif seimbang , orang dapat membayangkan menempatkan bobot masing-masing di papan dan kemudian mencoba untuk menyeimbangkan papan pada pivot sehingga bobot relatif yang dirangkum kiri dan kanan pivot adalah sama. Berat relatif diberikan dengan mengalikan berat dengan jaraknya ke pivot (lihat hukum tuas ).
(Sumber: wikipedia )
Gambar ini sesuai dengan daftar [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
. Daftar ini seimbang karena 5
memiliki jarak 20 ke pivot, 100
jarak 1 dan 5*20 = 100 = 100*1
.
Contohnya
3 1 5 7
#########
^
Dalam hal ini pivot berada tepat di bawah 5
, 3
memiliki jarak 2 dan dan 1
dan 7
memiliki jarak 1. Jadi kedua sisi kiri dan kanan pivot dijumlahkan ke 7
( 3*2 + 1*1
di kiri dan 7*1
di kanan) dan oleh karena itu daftarnya [3, 1, 5, 7]
seimbang.
Namun, perhatikan bahwa pivot tidak harus ditempatkan di bawah salah satu elemen daftar, tetapi juga dapat ditempatkan di antara dua elemen daftar:
6 3 1
#######
^
Dalam hal ini jarak menjadi 0.5, 1.5, 2.5, ...
dan seterusnya. Daftar ini juga seimbang karena 6*0.5 = 3 = 3*0.5 + 1*1.5
.
Pivot hanya dapat ditempatkan tepat di bawah satu angka atau tepat di tengah di antara dua angka, dan bukan misalnya di dua pertiga antara dua angka.
Tugas
Diberikan daftar bilangan bulat non-negatif dalam format wajar apa pun, output truthy
nilai jika daftar dapat diseimbangkan dan falsy
nilai sebaliknya.
Anda dapat mengasumsikan bahwa daftar input berisi setidaknya dua elemen dan setidaknya satu elemen adalah nol.
Ini adalah tantangan kode-golf , jadi jawabannya dengan jumlah byte paling sedikit di setiap bahasa akan menang.
Testcases Sejati
[1, 0]
[3, 1, 5, 7]
[6, 3, 1]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
[10, 4, 3, 0, 2, 0, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[7, 7, 7, 7]
Testis Palsu
[1, 2]
[3, 6, 5, 1, 12]
[0, 0, 2, 0, 1, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 3, 2, 4, 0, 1, 2, 3]
[4, 0, 0, 2, 3, 5, 2, 0, 1, 2, 3, 0, 0, 1, 2, 4, 3, 1, 3, 0, 0, 2]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
Banyak tantangan terkait di mana ditemukan saat tantangan ini berpasir : Apakah angka itu seimbang? , Indeks keseimbangan urutan , Saldo satu set bobot pada jungkat-jungkit , Kata-kata Penyeimbang , Akankah saya terbalik? dan Di mana poros itu berada?
You can assume that the input list contains at least two elements and that at least one element is non-zero.