In fisica, come le cariche elettriche si respingono e diversamente dalle cariche si attraggono.
L'energia potenziale tra due cariche unitarie separate da una distanza d
è 1/d
per cariche simili e -1/d
per cariche diverse. L'energia potenziale di un sistema di cariche è la somma delle energie potenziali tra tutte le coppie di cariche.
Sfida
Determina l'energia potenziale di un sistema di cariche unitarie rappresentato da una stringa.
Questo è code-golf , quindi vince la soluzione più breve in byte.
Ingresso
Una stringa non vuota multilinea, composto da soli +
, -
,
e nuove righe, con ogni riga una larghezza costante. La +
e -
rappresentano accuse di +1 e -1 rispettivamente. Ad esempio, la seguente stringa:
+ -
+
(considerando l'origine in alto a sinistra) rappresenta un sistema con cariche positive a (4,0) e (1, -1) e una carica negativa a (6,0).
In alternativa, puoi inserire input come un elenco di righe.
Produzione
Un numero reale firmato che rappresenta l'energia potenziale del sistema di cariche. L'output dovrebbe essere corretto su quattro cifre significative o 10 -4 , a seconda di quale sia più flessibile.
Casi test:
-
Dovrebbe produrre 0
. Non ci sono coppie di cariche da respingere o attrarre, e lo spazio bianco non cambia nulla.
+
-
Ci sono solo due cariche; sono 1 unità di distanza in direzione verticale e 2 unità di distanza in direzione orizzontale, quindi la loro distanza è sqrt (5). L'output dovrebbe essere -1 / sqrt (5) = -0.447213595
.
+ -
- +
Dovrebbe dare -2.001930531
.
- -- -+ - - -+-++-+
+-- + +-- + ++-++ -
---++-+-+- -+- - +-
-- - -++-+ --+ +
- + --+ ++-+ +-
-- ++- + + -+--+
+ +++-+--+ +--+++ +
-+- +-+-+-+ -+ +--+
- +-+- + ---+
- - ++ -+- --+--
Dovrebbe dare -22.030557890
.
---+--- ++-+++- -+ +
-+ ---+++-+- +- + +
---+-+ - ---- +-- -
- + +--+ -++- - -
--+ - --- - -+---+ -
+---+----++ - + +
-+ - ++-- ++- -+++
+----+- ++-+-+ -
++- -+ -+---+ -- -+
+-+++ ++-+-+ -+- +-
Dovrebbe dare 26.231088767
.