En física, las cargas eléctricas repelen y, a diferencia, las cargas se atraen.
La energía potencial entre dos cargas unitarias separadas por una distancia d
es 1/d
para cargas similares y -1/d
para cargas diferentes. La energía potencial de un sistema de cargas es la suma de las energías potenciales entre todos los pares de cargas.
Reto
Determine la energía potencial de un sistema de cargas unitarias representadas por una cadena.
Este es el código de golf , por lo que gana la solución más corta en bytes.
Entrada
Una cadena no vacío de varias líneas, que consta de sólo +
, -
,
y saltos de línea, con cada línea de una anchura constante. Los +
y -
representan cargos de +1 y -1 respectivamente. Por ejemplo, la siguiente cadena:
+ -
+
(considerando que la parte superior izquierda es el origen) representa un sistema con cargas positivas en (4,0) y (1, -1) y una carga negativa en (6,0).
Alternativamente, puede tomar la entrada como una lista de líneas.
Salida
Un número real firmado que representa la energía potencial del sistema de cargas. La salida debe ser correcta para cuatro cifras significativas o 10 -4 , lo que sea más flojo.
Casos de prueba:
-
Debería salir 0
. No hay pares de cargas para repeler o atraer, y el espacio en blanco no cambia nada.
+
-
Solo hay dos cargos; están a 1 unidad de distancia en la dirección vertical y a 2 unidades de distancia en la dirección horizontal, por lo que su distancia es sqrt (5). La salida debe ser -1 / sqrt (5) = -0.447213595
.
+ -
- +
Debería dar -2.001930531
.
- -- -+ - - -+-++-+
+-- + +-- + ++-++ -
---++-+-+- -+- - +-
-- - -++-+ --+ +
- + --+ ++-+ +-
-- ++- + + -+--+
+ +++-+--+ +--+++ +
-+- +-+-+-+ -+ +--+
- +-+- + ---+
- - ++ -+- --+--
Debería dar -22.030557890
.
---+--- ++-+++- -+ +
-+ ---+++-+- +- + +
---+-+ - ---- +-- -
- + +--+ -++- - -
--+ - --- - -+---+ -
+---+----++ - + +
-+ - ++-- ++- -+++
+----+- ++-+-+ -
++- -+ -+---+ -- -+
+-+++ ++-+-+ -+- +-
Debería dar 26.231088767
.