Aby sprawdzić, czy lista liczb całkowitych nieujemnych jest zrównoważona , można sobie wyobrazić umieszczenie odpowiednich wag na tablicy, a następnie spróbować zrównoważyć tablicę na osi obrotu, tak aby podsumowane względne wagi po lewej i prawej stronie osi były takie same. Względny ciężar jest podawany przez pomnożenie ciężaru przez jego odległość od osi obrotu (patrz prawo dźwigni ).
(Źródło: wikipedia )
Ten obraz odpowiada liście [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
. Ta lista jest zrównoważona, ponieważ 5
ma odległość 20 do osi obrotu, 100
odległość 1 i 5*20 = 100 = 100*1
.
Przykłady
3 1 5 7
#########
^
W tym przypadku punkt obrotu znajduje się bezpośrednio pod 5
, 3
ma odległość 2 i 1
oraz 7
odległość 1. Tak więc obie strony po lewej i prawej stronie osi obrotu sumują się do 7
( 3*2 + 1*1
po lewej i 7*1
po prawej stronie), a zatem lista [3, 1, 5, 7]
jest zrównoważona.
Należy jednak pamiętać, że oś przestawna nie musi być umieszczana pod jednym z elementów listy, ale może również znajdować się pomiędzy dwoma elementami listy:
6 3 1
#######
^
W tym przypadku odległości stają się 0.5, 1.5, 2.5, ...
i tak dalej. Ta lista jest również zrównoważona, ponieważ 6*0.5 = 3 = 3*0.5 + 1*1.5
.
Oś może być umieszczona tylko dokładnie pod jedną liczbą lub dokładnie pośrodku między dwiema liczbami, a nie np. W dwóch trzecich między dwiema liczbami.
Zadanie
Biorąc pod uwagę listę liczb całkowitych nieujemnych w dowolnym rozsądnym formacie, wypisz truthy
wartość, jeśli listę można zrównoważyć, a falsy
wartość w przeciwnym razie.
Możesz założyć, że lista wejściowa zawiera co najmniej dwa elementy i że co najmniej jeden element jest różny od zera.
To jest golf golfowy wyzwanie dla , więc wygrywa odpowiedź z najmniejszą liczbą bajtów w każdym języku.
Prawdziwe przypadki testowe
[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]
Falsy Testcases
[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]
Znaleziono wiele powiązanych wyzwań, podczas gdy to wyzwanie było piaskownicą : czy jest to liczba zrównoważona? , Indeks równowagi sekwencji , Równowaga zestawu wag na huśtawce , Równoważenie słów , Czy przewrócę się? i Gdzie należy czop?
You can assume that the input list contains at least two elements and that at least one element is non-zero.