Skip to content

Commit

Permalink
Added Coulomb_Law (TheAlgorithms#8714)
Browse files Browse the repository at this point in the history
* Create coulomb_law.py

* Update coulomb_law.py

* Update coulomb_law.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update and rename coulomb_law.py to coulombs_law.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update coulombs_law.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update coulombs_law.py

* Update coulombs_law.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update coulombs_law.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update coulombs_law.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tianyi Zheng <[email protected]>
  • Loading branch information
3 people authored Sep 27, 2023
1 parent 211247e commit eace4ce
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions physics/coulombs_law.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
"""
Coulomb's law states that the magnitude of the electrostatic force of attraction
or repulsion between two point charges is directly proportional to the product
of the magnitudes of charges and inversely proportional to the square of the
distance between them.
F = k * q1 * q2 / r^2
k is Coulomb's constant and equals 1/(4π*ε0)
q1 is charge of first body (C)
q2 is charge of second body (C)
r is distance between two charged bodies (m)
Reference: https://en.wikipedia.org/wiki/Coulomb%27s_law
"""


def coulombs_law(q1: float, q2: float, radius: float) -> float:
"""
Calculate the electrostatic force of attraction or repulsion
between two point charges
>>> coulombs_law(15.5, 20, 15)
12382849136.06
>>> coulombs_law(1, 15, 5)
5392531075.38
>>> coulombs_law(20, -50, 15)
-39944674632.44
>>> coulombs_law(-5, -8, 10)
3595020716.92
>>> coulombs_law(50, 100, 50)
17975103584.6
"""
if radius <= 0:
raise ValueError("The radius is always a positive non zero integer")
return round(((8.9875517923 * 10**9) * q1 * q2) / (radius**2), 2)


if __name__ == "__main__":
import doctest

doctest.testmod()

0 comments on commit eace4ce

Please sign in to comment.