讨论一个问题,其中给定 A.P 的 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 为 A.P. 的前 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
将 d 替换为 2a,
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
所以现在我们有用于查找第 mth 项和第 nth 项之比的简单公式。让我们看一下 C++ 代码。
示例
上述方法的 C++ 代码
#include
using namespace std;
int main(){
float m = 8, n = 4;
// calculating ratio by applying formula.
float result = (2 * m - 1) / (2 * n - 1);
cout