Решение этого ряда с использованием специальных рядов по алгебре (использование математики) - PullRequest
1 голос
/ 28 апреля 2020

Итак, я должен найти сумму этой серии:

f (n) = 1 + (2 * 3) + (4 * 5 * 6) + ..... n терминов

Я сделал это с помощью рекурсии следующим образом:

def f(n):
    if n == 1:
        return 1
    else:
        product = 1
        add = 0
        s = (n * (n+1))/2
        for i in range (0,n):
            product = product * s
            s = s - 1
        add = product + f(n-1)
        return add

Теперь, пожалуйста, потерпите меня

Я думал, что мог бы сделать это быстрее, если бы мог использовать Специальный ряд в линейной алгебре:

Вот что я попытался:

Я нашел n-й член (с помощью некоторых энергичных вычислений): Tn = formula

Теперь есть метод, с помощью которого я могу использовать эту формулу, чтобы найти сумму Tn и, следовательно, ряд, используя python.

Я также хочу знать, можем ли мы делать такие вещи в python или нет ?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете перевести этот продукт в Python, используя для l oop, аналог того, как вы отслеживали продукт в своей рекурсивной функции. Таким образом, T (n) будет:

def T(n):
    product = 1
    for r in range(1, n+1):
        product *= (n * (n - 1)) / 2 + r
    return product

Теперь, как вы сказали, вам нужно найти сумму T (x) для x от 1 до n. В Python:

def f(n):
    sum = 0
    for i in range(1, n+1):
        sum += T(i)
    return sum

К вашему сведению:

a += x совпадает с a = a + x,

, аналог a *= x равен a = a * x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...