From c46cd473bb01bdbcdfab52d9e7f740148d218c09 Mon Sep 17 00:00:00 2001 From: BhaktiVagadia Date: Wed, 6 May 2026 20:15:07 +0530 Subject: [PATCH 1/2] add alternate harmonic series --- maths/series/alternate_harmonic_series.py | 50 +++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 maths/series/alternate_harmonic_series.py diff --git a/maths/series/alternate_harmonic_series.py b/maths/series/alternate_harmonic_series.py new file mode 100644 index 000000000000..ab9bd47f266e --- /dev/null +++ b/maths/series/alternate_harmonic_series.py @@ -0,0 +1,50 @@ +def is_alternate_harmonic_series(series: list) -> bool: + """ + checking whether the input series is alternate harmonic series or not + >>> is_alternate_harmonic_series([1, -1/2, 1/3, -1/4, 1/5]) + True + >>> is_alternate_harmonic_series([2/5, -2/10, 2/15, -2/20, 2/25]) + True + >>> is_alternate_harmonic_series([1, 1/2, 1/3, 1/4]) + False + >>> is_alternate_harmonic_series([1, -1/2, 1/4, -1/8]) + False + >>> is_alternate_harmonic_series(4) + Traceback (most recent call last): + ... + ValueError: Input series is not valid, valid series - [1, 2/3, 2] + >>> is_alternate_harmonic_series([]) + Traceback (most recent call last): + ... + ValueError: Input list must be a non empty list + >>> is_alternate_harmonic_series([0]) + Traceback (most recent call last): + ... + ValueError: Input series cannot have 0 as an element + >>> is_alternate_harmonic_series([1,2,0,6]) + Traceback (most recent call last): + ... + ValueError: Input series cannot have 0 as an element + """ + if not isinstance(series, list): + raise ValueError("Input series is not valid, valid series - [1, 2/3, 2]") + if len(series) == 0: + raise ValueError("Input list must be a non empty list") + if len(series) == 1 and series[0] != 0: + return True + receprocal= [] + series_len = len(series) + for i in range(series_len): + if series[i] == 0: + raise ValueError("Input series cannot have 0 as an element") + receprocal.append(1 / series[i]) + common_diff = abs(receprocal[1]) - abs(receprocal[0]) + for index in range(2, series_len): + if abs(receprocal[index]) - abs(receprocal[index - 1]) != common_diff or receprocal[index]*receprocal[index-1] >= 0: + return False + return True + +if __name__ == "__main__": + import doctest + + doctest.testmod() \ No newline at end of file From cb7316eb7dc453aa42ba0c700009d3b5164334ca Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 14:50:55 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/series/alternate_harmonic_series.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/maths/series/alternate_harmonic_series.py b/maths/series/alternate_harmonic_series.py index ab9bd47f266e..a887707d16fc 100644 --- a/maths/series/alternate_harmonic_series.py +++ b/maths/series/alternate_harmonic_series.py @@ -32,7 +32,7 @@ def is_alternate_harmonic_series(series: list) -> bool: raise ValueError("Input list must be a non empty list") if len(series) == 1 and series[0] != 0: return True - receprocal= [] + receprocal = [] series_len = len(series) for i in range(series_len): if series[i] == 0: @@ -40,11 +40,15 @@ def is_alternate_harmonic_series(series: list) -> bool: receprocal.append(1 / series[i]) common_diff = abs(receprocal[1]) - abs(receprocal[0]) for index in range(2, series_len): - if abs(receprocal[index]) - abs(receprocal[index - 1]) != common_diff or receprocal[index]*receprocal[index-1] >= 0: + if ( + abs(receprocal[index]) - abs(receprocal[index - 1]) != common_diff + or receprocal[index] * receprocal[index - 1] >= 0 + ): return False return True + if __name__ == "__main__": import doctest - doctest.testmod() \ No newline at end of file + doctest.testmod()