From 688304911c925bd85c0daf7c8e4e6fb1913d5d31 Mon Sep 17 00:00:00 2001 From: Atharva SJ Pagar Date: Mon, 14 Sep 2026 10:30:15 +0530 Subject: [PATCH] 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> --- maths/series/alternating_harmonic_series.py | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 maths/series/alternating_harmonic_series.py diff --git a/maths/series/alternating_harmonic_series.py b/maths/series/alternating_harmonic_series.py new file mode 100644 index 000000000..c6f066ab2 --- /dev/null +++ b/maths/series/alternating_harmonic_series.py @@ -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))