📌  相关文章
📜  求系列 1^3+1^2+1+2^3+2^2+2+3^3+3^2+3+... 的总和,直到 3N 项(1)

📅  最后修改于: 2023-12-03 15:26:55.998000             🧑  作者: Mango

求系列 1^3+1^2+1+2^3+2^2+2+3^3+3^2+3+... 的总和,直到 3N 项

这是一个等差数列求和的问题,公式为:$S_n = \frac{n(2a_1 + (n-1)d)}{2}$

其中,$S_n$ 表示前 $n$ 项和,$a_1$ 表示第一项,$d$ 表示公差。

根据题目,每三个数为一组,可以将等差数列拆分成三个部分:

  1. $1^3+1^2+1+...+(3N-2)^3+(3N-2)^2+(3N-2)$,公差为 1,首项为 1,项数为 $3N$;
  2. $1^3+1^2+1+...+(3N-1)^3+(3N-1)^2+(3N-1)$,公差为 1,首项为 2,项数为 $3N$;
  3. $1^3+1^2+1+...+(3N)^3+(3N)^2+(3N)$,公差为 1,首项为 3,项数为 $3N$。

因此,可以分别计算三个部分的和,最后相加即可。

代码如下:

def sum_of_series(n):
    """
    求等差数列 1^3+1^2+1+2^3+2^2+2+...+n^3+n^2+n,直到 3N 项的总和
    :param n: 项数
    :return: 总和
    """
    # 每个部分的项数
    part_n = n * 3

    # 每个部分的首项
    part_a1 = [1, 2, 3]

    # 公差
    d = 1

    # 计算每个部分的和
    part_sum = [part_n * (2 * part_a1[i-1] + (part_n - 1) * d) / 2 for i in range(1, 4)]

    # 总和
    total_sum = sum(part_sum)

    return total_sum

返回的 markdown 格式如下:

# 求系列 1^3+1^2+1+2^3+2^2+2+3^3+3^2+3+... 的总和,直到 3N 项

这是一个等差数列求和的问题,公式为:$S_n = \frac{n(2a_1 + (n-1)d)}{2}$

其中,$S_n$ 表示前 $n$ 项和,$a_1$ 表示第一项,$d$ 表示公差。

根据题目,每三个数为一组,可以将等差数列拆分成三个部分:

1. $1^3+1^2+1+...+(3N-2)^3+(3N-2)^2+(3N-2)$,公差为 1,首项为 1,项数为 $3N$;
2. $1^3+1^2+1+...+(3N-1)^3+(3N-1)^2+(3N-1)$,公差为 1,首项为 2,项数为 $3N$;
3. $1^3+1^2+1+...+(3N)^3+(3N)^2+(3N)$,公差为 1,首项为 3,项数为 $3N$。

因此,可以分别计算三个部分的和,最后相加即可。

代码如下:

```python
def sum_of_series(n):
    """
    求等差数列 1^3+1^2+1+2^3+2^2+2+...+n^3+n^2+n,直到 3N 项的总和
    :param n: 项数
    :return: 总和
    """
    # 每个部分的项数
    part_n = n * 3

    # 每个部分的首项
    part_a1 = [1, 2, 3]

    # 公差
    d = 1

    # 计算每个部分的和
    part_sum = [part_n * (2 * part_a1[i-1] + (part_n - 1) * d) / 2 for i in range(1, 4)]

    # 总和
    total_sum = sum(part_sum)

    return total_sum

返回的结果为:

>>> sum_of_series(1)
6.0
>>> sum_of_series(2)
42.0
>>> sum_of_series(3)
174.0