C++ 等差数列第 m 项和第 n 项的比值(已知和的比值)
讨论一个问题,其中给定等差数列前 m 项和与前 n 项和的比值,我们需要找到第 m 项和第 n 项的比值。
Input: m = 8, n = 4 Output: 2.142 Input: m = 3, n = 2 Output: 1.666 Input: m = 7, n = 3 Output: 2.6
解决方法
为了使用代码找到第 m 项和第 n 项的比值,我们需要简化公式。令 Sm 为等差数列前 m 项的和,Sn 为等差数列前 n 项的和。
a - 首项,
d - 公差,
已知, Sm / Sn = m2 / n2
S 的公式, Sm = (m/2)[ 2*a + (m-1)*d ]
m2 / n2 = (m/2)[ 2*a + (m-1)*d ] / (n/2)[ 2*a + (n-1)*d ]
m / n = [ 2*a +(m-1) *d ] / [ 2*a +(m-1) *d ]
使用交叉相乘,
n[ 2*a + (m−1)*d ] = m[ 2*a + (n−1)*d ]
2an + mnd - nd = 2am + mnd - md
2an - 2am = nd - md
(n - m)2a = (n-m)d
d = 2a
第 m 项的公式是,
Tm = a + (m-1)d
第 m 项和第 n 项的比值是,
Tm / Tn = a + (m-1)d / a + (n-1)d
用 2a 替换 d,
Tm / Tn = a + (m-1)*2a / a + (n-1)*2a
Tm / Tn = a( 1 + 2m − 2 ) / a( 1 + 2n − 2 )
Tm / Tn = 2m - 1 / 2n - 1
所以现在我们有一个简单的公式来找到第 m 项和第 n 项的比值。让我们看看 C++ 代码。
示例
上述方法的 C++ 代码
#include <bits/stdc++.h> using namespace std; int main(){ float m = 8, n = 4; // calculating ratio by applying formula. float result = (2 * m - 1) / (2 * n - 1); cout << "The Ratio of mth and nth term is: " << result; return 0; }
输出
The ratio of mth and nth term is: 2.14286
结论
在本教程中,我们讨论了一个问题,即在给定和的比值的情况下,如何找到第 m 项和第 n 项的比值,我们通过简化 m 项和的公式和第 m 项的公式来解决这个问题。我们还讨论了这个问题的 C++ 程序,我们也可以用 C、Java、Python 等编程语言来实现。希望本教程对您有所帮助。