Skip to content

Commit c0168cd

Browse files
GmuslowCaedenPHpre-commit-ci[bot]cclauss
authored
Created equivalent_resistance under Electronics (TheAlgorithms#6782)
* Create resistor_equivalence.py * Update resistor_equivalence.py * Update electronics/resistor_equivalence.py removed an unnecessary space Co-authored-by: Caeden <[email protected]> * Update resistor_equivalence.py fixed the snake_case requirement * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update resistor_equivalence.py finalize the naming convention errors (hopefully) * Update resistor_equivalence.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: Caeden <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <[email protected]>
1 parent e12516d commit c0168cd

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

electronics/resistor_equivalence.py

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# https://byjus.com/equivalent-resistance-formula/
2+
3+
from __future__ import annotations
4+
5+
6+
def resistor_parallel(resistors: list[float]) -> float:
7+
"""
8+
Req = 1/ (1/R1 + 1/R2 + ... + 1/Rn)
9+
10+
>>> resistor_parallel([3.21389, 2, 3])
11+
0.8737571620498019
12+
>>> resistor_parallel([3.21389, 2, -3])
13+
Traceback (most recent call last):
14+
...
15+
ValueError: Resistor at index 2 has a negative or zero value!
16+
>>> resistor_parallel([3.21389, 2, 0.000])
17+
Traceback (most recent call last):
18+
...
19+
ValueError: Resistor at index 2 has a negative or zero value!
20+
"""
21+
22+
first_sum = 0.00
23+
index = 0
24+
for resistor in resistors:
25+
if resistor <= 0:
26+
raise ValueError(f"Resistor at index {index} has a negative or zero value!")
27+
first_sum += 1 / float(resistor)
28+
index += 1
29+
return 1 / first_sum
30+
31+
32+
def resistor_series(resistors: list[float]) -> float:
33+
"""
34+
Req = R1 + R2 + ... + Rn
35+
36+
Calculate the equivalent resistance for any number of resistors in parallel.
37+
38+
>>> resistor_series([3.21389, 2, 3])
39+
8.21389
40+
>>> resistor_series([3.21389, 2, -3])
41+
Traceback (most recent call last):
42+
...
43+
ValueError: Resistor at index 2 has a negative value!
44+
"""
45+
sum_r = 0.00
46+
index = 0
47+
for resistor in resistors:
48+
sum_r += resistor
49+
if resistor < 0:
50+
raise ValueError(f"Resistor at index {index} has a negative value!")
51+
index += 1
52+
return sum_r
53+
54+
55+
if __name__ == "__main__":
56+
import doctest
57+
58+
doctest.testmod()

0 commit comments

Comments
 (0)