HBC26130little w and Sum,思维Arithmetic Sequence题解

坐在坟头思考人生 算法基础篇 56 0
题库丰富多样,涵盖各个领域,全网最全C++题库,让您在练习中不断成长!
数竞选手小r最喜欢做的题型是数列大题,并且每一道都能得到满分,你可能不相信,但其实他发现了一个结论:只要是数列,无论是给了通项还是给了递推式,无论定义多复杂,都可以被搞成等差数列,这样,只要他精通了等差数列,他就能做出任何数列题目,3,5,7,9,11,13,就是一个等差数列, 在这个数列中,从第二项起,每项与其前一项之差都等于2,即公差为2,看到这里,你不由得发出赞叹:为什么小r这么强呢?

数竞选手小r最喜欢做的题型是数列大题,并且每一道都能得到满分。 你可能不相信,但其实他发现了一个结论:只要是数列,无论是给了通项还是给了递推式,无论定义多复杂,都可以被搞成等差数列。这样,只要他精通了等差数列,他就能做出任何数列题目。 等差数列是数列的一种。在等差数列中,任何相邻两项的差相等,该差值称为公差。例如数列 3,5,7,9,11,13,cdots 3,5,7,9,11,13,⋯就是一个等差数列。 在这个数列中,从第二项起,每项与其前一项之差都等于2,即公差为2。 小r熟知等差数列的各种公式:如果一个等差数列的首项标为 a_1 a 1 ​ ,公差标为d,那么该等差数列第n项的表达式为 a_n=a_1+(n-1)d a n ​ =a 1 ​ +(n−1)d 等差数列的任意两项之间存在关系 a_n=a_m+(n-m)d a n ​ =a m ​ +(n−m)d 和为 S_n S n ​ ,首项 a_1 a 1 ​ ,末项 a_n a n ​ ,公差d,项数n,同时可得 S_n=a_1+a_2+a_3+cdots+a_n=sum_{i=0}^{n-1}(a_1+id)=frac{n(a_1+a_n)}{2}=frac{n[2a_1+(n-1)d]}{2} S n ​ =a 1 ​ +a 2 ​ +a 3 ​ +⋯+a n ​ =∑ i=0 n−1 ​ (a 1 ​ +id)= 2 n(a 1 ​ +a n ​ ) ​ = 2 n[2a 1 ​ +(n−1)d] ​ 为什么他这么熟练呢?因为小r在小时候就发现这个公式了。在他三年级的时候,他的老师让学生们做从1加到100的习题。小r很快发现数列的规律,用上面的公式得出了5050的答案。于是小r在后来编写你的教科书的时候,经常把如上公式写成一个等差数列的和等于其首项与末项的和乘以项数除以2。 顺便一提,小r在证明上面的公式时,使用了自创的伪证法,先做假设再证明,为世人所称道: 先证n=1时该公式成立:等式左边 =a_1 =a 1 ​ ,等式右边 =frac{a_1+a_1}{2}=a_1 = 2 a 1 ​ +a 1 ​ ​ =a 1 ​ (需注意在此时首项和末项均为 a_1 a 1 ​ ),两边相等,得证。 再假设n=k时该公式成立,有 S_k=frac{(a_1+a_k)k}{2}=frac{[2a_1+(k-1)d]k}{2}。 S k ​ = 2 (a 1 ​ +a k ​ )k ​ = 2 [2a 1 ​ +(k−1)d]k ​ 。 现在证明n=k+1时该公式成立: S_{k+1}=S_{k}+a_{k+1}={frac {(2a_{1}+(k-1)d)k}{2}}+a_{1}+kd S k+1 ​ =S k ​ +a k+1 ​ = 2 (2a 1 ​ +(k−1)d)k ​ +a 1 ​ +kd ={frac {2a_{1}k+2a_{1}+k^{2}d+kd}{2}}={frac {(2a_{1}+kd)(k+1)}{2}}={frac {(a_{1}+a_{k+1})(k+1)}{2}}, = 2 2a 1 ​ k+2a 1 ​ +k 2 d+kd ​ = 2 (2a 1 ​ +kd)(k+1) ​ = 2 (a 1 ​ +a k+1 ​ )(k+1) ​ , 因为 a_{k+1}=a_{1}+kd a k+1 ​ =a 1 ​ +kd,所以,得证。 看到这里,你不由得发出赞叹:为什么小r这么强呢? 然而,强如小r,是不屑于计算一些琐碎的计算的。现在小r给了你一个数X,要求你搞出一个等差数列a使得 S_n=a_1+a_2+a_3+cdots+a_n=sum_{i=0}^{n-1}(a_1+id)=frac{n(a_1+a_n)}{2}=X S n ​ =a 1 ​ +a 2 ​ +a 3 ​ +⋯+a n ​ =∑ i=0 n−1 ​ (a 1 ​ +id)= 2 n(a 1 ​ +a n ​ ) ​ =X

HBC26130little w and Sum,思维Arithmetic Sequence题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
不断挑战自我,才能突破极限!全网最全C++题库,让您在编程道路上越走越远。

标签: HBC26130little w and Sum 思维Arithmetic Sequence题解