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 等程式語言來實現。希望本教程對您有所幫助。

更新於: 2021-11-26

111 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.