TheAlgorithms-Python

Форк
0
/
wheatstone_bridge.py 
41 строка · 1.3 Кб
1
# https://en.wikipedia.org/wiki/Wheatstone_bridge
2
from __future__ import annotations
3

4

5
def wheatstone_solver(
6
    resistance_1: float, resistance_2: float, resistance_3: float
7
) -> float:
8
    """
9
    This function can calculate the unknown resistance in an wheatstone network,
10
    given that the three other resistances in the network are known.
11
    The formula to calculate the same is:
12

13
    ---------------
14
    |Rx=(R2/R1)*R3|
15
    ---------------
16

17
    Usage examples:
18
    >>> wheatstone_solver(resistance_1=2, resistance_2=4, resistance_3=5)
19
    10.0
20
    >>> wheatstone_solver(resistance_1=356, resistance_2=234, resistance_3=976)
21
    641.5280898876405
22
    >>> wheatstone_solver(resistance_1=2, resistance_2=-1, resistance_3=2)
23
    Traceback (most recent call last):
24
        ...
25
    ValueError: All resistance values must be positive
26
    >>> wheatstone_solver(resistance_1=0, resistance_2=0, resistance_3=2)
27
    Traceback (most recent call last):
28
        ...
29
    ValueError: All resistance values must be positive
30
    """
31

32
    if resistance_1 <= 0 or resistance_2 <= 0 or resistance_3 <= 0:
33
        raise ValueError("All resistance values must be positive")
34
    else:
35
        return float((resistance_2 / resistance_1) * resistance_3)
36

37

38
if __name__ == "__main__":
39
    import doctest
40

41
    doctest.testmod()
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.