Na física, como cargas elétricas se repelem, e cargas diferentes se atraem.
A energia potencial entre duas cargas unitárias separadas por uma distância d
é 1/d
para cargas iguais e -1/d
para cargas diferentes. A energia potencial de um sistema de cargas é a soma das energias potenciais entre todos os pares de cargas.
Desafio
Determine a energia potencial de um sistema de cargas unitárias representado por uma corda.
Isso é código-golfe , então a solução mais curta em bytes vence.
Entrada
Uma cadeia não vazio de várias linhas, que consiste em apenas +
, -
,
e mudanças de linha, com cada linha de uma largura constante. As taxas +
e -
representam +1 e -1, respectivamente. Por exemplo, a seguinte sequência:
+ -
+
(considerando que a parte superior esquerda é a origem) representa um sistema com cargas positivas em (4,0) e (1, -1) e uma carga negativa em (6,0).
Como alternativa, você pode receber a entrada como uma lista de linhas.
Saída
Um número real assinado que representa a energia potencial do sistema de cobranças. A saída deve estar correta para quatro algarismos significativos ou 10 -4 , o que for mais fraco.
Casos de teste:
-
Deve saída 0
. Não há pares de encargos para repelir ou atrair, e o espaço em branco não muda nada.
+
-
Existem apenas duas cobranças; eles estão a 1 unidade de distância na direção vertical e a 2 unidades de distância na direção horizontal; portanto, a distância é de sqrt (5). A saída deve ser -1 / sqrt (5) = -0.447213595
.
+ -
- +
Deveria dar -2.001930531
.
- -- -+ - - -+-++-+
+-- + +-- + ++-++ -
---++-+-+- -+- - +-
-- - -++-+ --+ +
- + --+ ++-+ +-
-- ++- + + -+--+
+ +++-+--+ +--+++ +
-+- +-+-+-+ -+ +--+
- +-+- + ---+
- - ++ -+- --+--
Deveria dar -22.030557890
.
---+--- ++-+++- -+ +
-+ ---+++-+- +- + +
---+-+ - ---- +-- -
- + +--+ -++- - -
--+ - --- - -+---+ -
+---+----++ - + +
-+ - ++-- ++- -+++
+----+- ++-+-+ -
++- -+ -+---+ -- -+
+-+++ ++-+-+ -+- +-
Deveria dar 26.231088767
.