mirror of
https://github.com/TheAlgorithms/Python.git
synced 2026-09-28 21:45:27 +08:00
Add alternating harmonic series checker (#14634)
* Add alternating harmonic series checker * Add reference link for alternating harmonic series * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
parent
e924e42d90
commit
688304911c
@@ -0,0 +1,34 @@
|
||||
"""Alternating Harmonic Series Checker"""
|
||||
# https://en.wikipedia.org/wiki/Alternating_harmonic_series
|
||||
|
||||
|
||||
def is_alternate_harmonic_series(series: list) -> bool:
|
||||
"""
|
||||
Returns True if the given series is an Alternating Harmonic Series.
|
||||
|
||||
Examples:
|
||||
>>> is_alternate_harmonic_series([1, -1/2, 1/3, -1/4])
|
||||
True
|
||||
|
||||
>>> is_alternate_harmonic_series([1, 1/2, 1/3])
|
||||
False
|
||||
|
||||
>>> is_alternate_harmonic_series([])
|
||||
False
|
||||
"""
|
||||
|
||||
if not series:
|
||||
return False
|
||||
|
||||
for i, value in enumerate(series):
|
||||
expected = ((-1) ** i) * (1 / (i + 1))
|
||||
|
||||
if abs(value - expected) > 1e-9:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sample = [1, -1 / 2, 1 / 3, -1 / 4]
|
||||
print(is_alternate_harmonic_series(sample))
|
||||
Reference in New Issue
Block a user