diff --git a/maths/series/alternating_harmonic_series.py b/maths/series/alternating_harmonic_series.py new file mode 100644 index 000000000000..c6f066ab2b30 --- /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))