## How do I find the sum of series 1+ (1*2) + (1*2*3) … (1*2*3*…n) using recursion?

So this is what I have so far,

def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)

to calculate the factorial, but how do I add the sums?

@DarryIG and @bkbb's answers would work but are inefficient since it makes repeated recursive calls with the same numbers, which have the same results, over and over again for the higher numbers. You can cache the results for better efficiency.

Also, since:

sum_factorials(n) = (sum_factorials(n-1) - sum_factorials(n-2)) * n + sum_factorials(n-1)

you don't actually need two functions to implement the recursion:

def sum_factorials(n, cache=[0, 1]): if len(cache) > n: return cache[n] previous = sum_factorials(n - 1) cache.append((previous - sum_factorials(n - 2)) * n + previous) return cache[n]

so that `sum_factorials(4)`

returns:

33

**Sum of the First n Terms of a Series,** To find the sum of the first n terms of an arithmetic sequence use the formula, Sn=n(a1 + a2)2 , where n is the number of terms, a1 is the first term and an is the Sum of arithmetic series: How to find the sum of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Using the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Add the first and last terms of the sequence and write down the answer. Then, add the second and next-to-last terms.

Alternative single recursive solution with generators, using `functools.reduce`

for multiplication:

from functools import reduce as _r def fact_sum(n, f = True): if not f and n: yield from [n, *fact_sum(n - 1, f = False)] if f and n: new_n = _r(lambda x, y:x*y, list(fact_sum(n, f = False))) yield from [new_n, *fact_sum(n - 1, f = True)] print(sum(fact_sum(3))) print(sum(fact_sum(4)))

Output:

9 33

**Sum of an Infinite Geometric Series, Ex 1,** Sum of an Infinite Geometric Series, Ex 1. In this video, I show how to find the sum of a Duration: 1:37
Posted: Jul 1, 2011 into the formula, and simplify to find the sum: S = a1 1−r S = 4,374 1−(−1 3) = 3,280.5 S = a 1 1 − r S = 4, 374 1 − (− 1 3) = 3, 280.5 The formula is exponential, so the series is geometric, but \displaystyle r>1 r > 1.

Added memoization which would be used in practice for these types of recursive functions to improve efficiency by removing repetitive computations (i.e. https://www.python-course.eu/python3_memoization.php)

def memoize(f): memo = {} def helper(x): if x not in memo: memo[x] = f(x) return memo[x] return helper @memoize def sum_of_factorial(n): if n==0: return 0 return factorial(n) + sum_of_factorial(n-1) @memoize def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)

**Finding Sums of Infinite Series,** We will examine an infinite series with r = 1 2 \displaystyle r=\frac{1}{2} r=21. What happens to Here is another inﬁnite series that has a sum. It is the series X∞ k=1 1 k(k +1) = 1 2 + 1 6 + 1 12 + 1 20 + . To ﬁnd the sum of this series, we need to work out the partial sums. For this particular series, the best way to do this is to split each individual term into two parts: 1 k(k +1) = k +1−k k(k +1) = k +1 k(k +1) − k k(k +1) = 1 k − 1 k +1.

I'm not sure why we need any subtraction or caches. Recursion can go forwards as well as backwards:

def f(n, i=1, factorial=1, result=1): if i == n: return result next = factorial * (i + 1) return f(n, i + 1, next, result + next) print(f(4)) # 33

(This also seems slightly faster than blhsing's answer.)

**Infinite Series,** The sums are heading towards a value (1 in this case), so this series is convergent. The "sum so far" is called a partial sum . So, more formally, we say it is a To sum the numbers in an arithmetic sequence, you can manually add up all of the numbers. This is impractical, however, when the sequence contains a large amount of numbers. Instead, you can quickly find the sum of any arithmetic sequence by multiplying the average of the first and last term by the number of terms in the sequence. Part 1

Your logic is almost good, I have corrected it. Please check it below.

You can try it online at https://rextester.com/AGS44863

def factorial(n): if n == 0: return 0 else: mul_sum = 1 for i in range(1, n + 1): mul_sum *= i return factorial(n-1) + mul_sum print(factorial(4)) # 33

To make sure, the above one is correct, you can also have a look at the below function which forms the expression (string) using recursion.

def factorial_expression(n): if str(n) == '0': return "" else: if n == 1: return "1" mul_sum = "(" for i in range(1, n + 1): mul_sum += str(i) + "*" return (factorial_expression(n-1) + "+" + mul_sum.rstrip("*") + ")").lstrip("+") # 1+(1*2)+(1*2*3)+(1*2*3*4) print(factorial_expression(4))

**Infinite series as limit of partial sums (video),** Obviously here, the terms approach 0, (lim(n → ∞) 1/n = 0) but in fact, this sum diverges! So the Duration: 4:48
Posted: Jun 28, 2018 The first is to calculate any random element in the sequence (which mathematicians like to call the "nth" element), and the second is to find the sum of the geometric sequence up to the nth element. When you sum the sequence by putting a plus sign between each pair of terms, you turn the sequence into a geometric series.

**Infinite geometric series formula intuition (video),** Sal said it himself at the end, that the common ratio _r_ must satisfy the condition |r|<1. This is Duration: 7:54
Posted: May 18, 2014 Program to find sum of series 1 + 1/2 + 1/3 + 1/4 + .. + 1/n If inverse of a sequence follows rule of an A.P i.e, Arithmetic progression, then it is said to be in Harmonic Progression.In general, the terms in a harmonic progression can be denoted as : 1/a, 1/(a + d), 1/(a + 2d), 1/(a + 3d) …. 1/(a + nd).

**How to Find the Value of an Infinite Sum in a Geometric Sequence ,** sum in a geometric sequence, the process is actually quite simple — as long as you keep your fractions and decimals straight. If r lies outside the range –1 < r Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. The Cesàro Sum of a series

**[PDF] 11.3: Infinite Series Examples,** An infinite series is a “sum” of the form a1 + a2 + a3 + ··· = ∞. ∑ i=1. 1. Examples Given a sequence a1,a2,a3, of numbers, the Nth partial sum of. This is the 50th Harmonic number, denoted by [math] H_{50}[/math]. [math]H_N = \sum\limits_{n=1}^{N}\frac{1}{n} = \int\limits_1^N\frac{1}{x}dx + \gamma = log_e {N