[C/C++入门][循环]12、等差数列和等差数列末项计算

等差数列是什么?

想象一下,你获得了一个神奇的糖果盒,他有一个神奇的功能,每次你打开盒子时,里面都会多出同样数量的糖。你只要给里面放上1颗糖,然后想着可以多几颗,比如我希望打开的时候多两颗,那第二次打开时多了2颗成了3颗糖,第三次又多了2颗,成了5颗糖……看到没有?每次增加的糖的数量都是一样的,我们也叫做他们每次的差是一样的,这就是等差数列的道理!

排队买冰淇淋

假设有一天,你和你的小伙伴排成一队去买冰淇淋。队伍的规则是这样的:第一个小朋友可以得到1个冰淇淋球,但是每一个后面的小朋友都可以多得1个冰淇淋球。所以第二个小朋友会得到2个,第三个会得到3个,依此类推。

现在,如果队伍里有10个小朋友,那最后一个小朋友能得到多少个冰淇淋球呢?还有,所有的冰淇淋加起来一共是多少个呢?

这个故事,就是求等差数列的末位数和等差数列和。

数学魔法:找出答案(等差数列和等差数列和)

我们来用点魔法算一算吧!我们知道,第一个小朋友有1个冰淇淋球,每往后一个小朋友就多一个球。那么,第十个小朋友就会有10个冰淇淋球(因为1+9=10)。

让我们来看一下数学上的介绍:

等差数列是指一个数列中任意一项与其前一项之差恒等于常数的一类数列,这个常数称为公差。设等差数列的第一项为a1,公差为d,则数列的第

接着我们一点点推导一下这个公式,看看这个公式是怎么得出来的:

  1. 第一项:由定义,第一项是 a1​。
  2. 第二项:第二项 a2​ 比第一项多了一个公差 d,因此 a2​=a1​+d
  3. 第三项:第三项a3​ 比第二项多了一个公差 d,即 3​=a2​+d。将 a2​ 的表达式代入得 3=(1+)+=1+2。
  4. 第四项:以此类推,第四项 a4​ 比第三项多了一个公差 d,即 a4​=a3​+d。将a3​ 的表达式代入得 a4​=(a1​+2d)+d=a1​+3d
  5. 从上面的步骤可以看出,每增加一项,就在原有的基础上加上一个 d。换句话说,第 n 项比第一项多了 n−1 个公差 d

因此,第 n 项 an​ 可以表示为第一项加上 (n−1) 个公差 d,即:

an​=a1​+(n−1)d

n项可以表示为: an​=a1​+(n−1)d        

那总共需要多少个冰淇淋呢?我们把每个小朋友的冰淇淋加起来,也就是1+2+3+...+10。这看起来有点麻烦,但其实有个小窍门,叫做“等差数列求和公式”。我们用这个公式,很快就能知道答案是55个冰淇淋!

等差数列的前n项和Sn​可以通过以下公式计算:

Sn=\frac{n}{2}\left [ 2a1+(n-1)d \right ]

或者

Sn=\frac{n}{2}\left [ a1+an \right ]

其中:

a1​ 是数列的第一项,

d 是公差(每一项与前一项之间的常数差),

n 是项数,

an​ 是第 n 项。

第一个公式基于首项 a1​ 和公差 d,而第二个公式则基于首项 a1​ 和第 n 项 an​。

如果你提供具体的数值,我可以帮你计算出等差数列的前 𝑛n 项和。例如,如果我们有一个等差数列,首项 a1​=3,公差 d=2,并且我们想要找到前 5 项的和,我们可以使用第一个公式来计算:

S5=\frac{5}{2}\left [ 2*3+(5-1)*2 \right ]

那这个公式是如何推到出来的呢?

很久很久以前,在一个数学王国里,有一个聪明绝顶的小王子,他的名字叫高斯。有一天,国王给小王子出了一个难题,要求他计算从1加到100的总和。国王以为这会难倒小王子,没想到小王子只用了几分钟就给出了答案。

 

高斯的方法

小王子高斯是怎么做的呢?他首先写下了两个序列:

  1. 第一个序列是从1到100的数字。
  2. 第二个序列是把第一个序列反过来写,即从100到1的数字。

接下来,高斯把这两个序列上下对齐相加,得到了一个新的序列,每一项都是101(因为1+100=101, 2+99=101, ...)。由于从1到100共有100个数字,这意味着新的序列也有100个数字,每个都是101。

现在我们来尝试按照高斯的方法推导一下:

首先,写下从1到10的数字序列: 1,2,3,4,5,6,7,8,9,10

接着,将这个序列反向写下来: 10,9,8,7,6,5,4,3,2,1

将这两个序列的对应项相加,我们会得到: 11,11,11,11,11,11,11,11,11,11

可以看到,每个数都是11,这是因为1+10=11, 2+9=11, ..., 10+1=11。

由于有10个这样的数,我们可以很容易地计算出总和为 11×10=110。

但是,这里我们实际上计算了两倍的序列之和,因为我们加了两次1到10的序列。所以,实际的序列和应该是110的一半,即 110/2=55。

通过这个聪明的方法,我们发现从1加到10的和是55。这个过程揭示了一个更通用的等差数列求和公式,对于任意的等差数列 {a1​,a2​,a3​,...,an​},其和S 可以用以下公式计算:

Sn=\frac{n}{2}\left [ 2a1+(n-1)d \right ]

其中,n 是项数,a1​ 是第一项,而 d 是公差(在我们的例子中,d=1)。

在这个特定的例子中,n=10,a1​=1,而 d=1,代入公式,我们同样可以得到 S=55。

这样,我们就用一个故事讲述了等差数列求和的推导过程,是不是既简单又有趣呢?

希望这个解释能够帮助小朋友们更好地理解等差数列和的等差数列求和的原理!

动手做一做:等差数列游戏

现在,让我们来做个小游戏。你需要一张纸和一支笔,然后按照下面的步骤来:

  1. 写下数字,比如1。
  2. 在下一个数字上加上相同的数(比如2),一直写到n。
  3. 把这些数字加起来,看看总共有多少。

互相给身边的小伙伴出一个题,让他来进行计算吧,看你们谁算的又快又准!

编程问题解决一下

比如告诉你首项a1,和次项a2,以及n,以此自己推断公差,我们需要编写一个C++程序来计算这个数列的末项an以及整个数列的和S。

考点分析(数学推到型的)把数学公式转成计算机公式

  1. 等差数列的末项公式:an = a1 + (n - 1) * d
  2. 等差数列的求和公式:S = n / 2 * (a1 + an) 或 S = n / 2 * [2 * a1 + (n - 1) * d]

现在我们就来探索一下遇到这种题应该如何解答。

解题思路

  • 输入等差数列的首项a1,a2,以及项数n。
  • 计算出差,an代表n位置上的a的值,使用计算机方法计算an。
  • 输出计算结果。

解题方法

#include <iostream>
using namespace std;

int main() {
    int a1, a2, n;
    cin >> a1 >> a2 >> n;
    int cha = a2 - a1;
    int an = a1;//最后一位
    int s = a1;//和
    //i从1开始,也就是直接加后面的,上面已经把a1赋值了,第一个数不用加了
    for (int i = 1; i < n; i++) {
        an += cha;
        s += an;
    }
    // 输出结果
    cout << "末项 an = " << an << endl;
    cout << "数列的和 S = " << s << endl;
    return 0;
}

解题方法2(带入数学公式)

#include <iostream>
using namespace std;

int main() {
    int a1, a2, n; // 定义等差数列的首项、次项和项数
    cin >> a1 >> a2>> n; // 从标准输入读取这些值
	
  int d=a2-a1;//计算公差
  
    // 计算末项
    int an = a1 + (n - 1) * d;

    // 计算数列的和
    int S = n * (a1 + an) / 2;

    // 输出结果
    cout << "末项 an = " << an << endl;
    cout << "数列的和 S = " << S << endl;

    return 0;
}

应用案例

等差数列在多个领域都有应用,例如在物理学中计算匀加速直线运动的距离,在信号处理中处理等间隔采样的数据,在金融领域中计算等额分期付款等。

扩展阅读

  • 《数学分析》,华东师范大学出版社
  • 《C++ Primer Plus》,Stephen Prata著

互动

尝试修改上述程序,以适应等比数列的计算需求,即计算等比数列的末项和前n项的和。

小朋友们做完作业记得在评论区里评论打卡哦。

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值