From 6c2c08c07644a7221c716b81ff8e3d2d7fcbfe1f Mon Sep 17 00:00:00 2001 From: Advik Kulkarni <56193714+AxSmasher44@users.noreply.github.com> Date: Fri, 10 Jul 2020 18:26:43 +0530 Subject: [PATCH] sum_of_geometric_progression (#2168) * Add files via upload * Rename sum_of_Geometric_Progression.py to sum_of_geometric_progression.py * Update sum_of_geometric_progression.py * Update maths/sum_of_geometric_progression.py Co-authored-by: Christian Clauss * Update maths/sum_of_geometric_progression.py Co-authored-by: Christian Clauss * Update maths/sum_of_geometric_progression.py Co-authored-by: Christian Clauss * Update sum_of_geometric_progression.py * Update sum_of_geometric_progression.py * Type hints and test for zeros and negative numbers * Update sum_of_geometric_progression.py Co-authored-by: Christian Clauss --- maths/sum_of_geometric_progression.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 maths/sum_of_geometric_progression.py diff --git a/maths/sum_of_geometric_progression.py b/maths/sum_of_geometric_progression.py new file mode 100644 index 000000000..614d6646e --- /dev/null +++ b/maths/sum_of_geometric_progression.py @@ -0,0 +1,28 @@ +def sum_of_geometric_progression( + first_term: int, common_ratio: int, num_of_terms: int +) -> float: + """" + Return the sum of n terms in a geometric progression. + >>> sum_of_geometric_progression(1, 2, 10) + 1023.0 + >>> sum_of_geometric_progression(1, 10, 5) + 11111.0 + >>> sum_of_geometric_progression(0, 2, 10) + 0.0 + >>> sum_of_geometric_progression(1, 0, 10) + 1.0 + >>> sum_of_geometric_progression(1, 2, 0) + -0.0 + >>> sum_of_geometric_progression(-1, 2, 10) + -1023.0 + >>> sum_of_geometric_progression(1, -2, 10) + -341.0 + >>> sum_of_geometric_progression(1, 2, -10) + -0.9990234375 + """ + if common_ratio == 1: + # Formula for sum if common ratio is 1 + return num_of_terms * first_term + + # Formula for finding sum of n terms of a GeometricProgression + return (first_term / (1 - common_ratio)) * (1 - common_ratio ** num_of_terms)