ในปัญหานี้ เราได้รับค่าห้าค่า m, n, mth term, nth term, p งานของเราคือ หาพจน์ลำดับที่ P ของลำดับเรขาคณิต หากทราบพจน์ลำดับที่ M และ N
สำหรับลำดับเรขาคณิต (GP) เราได้รับค่าของพจน์ลำดับที่ m และพจน์ลำดับที่ n โดยใช้ค่าเหล่านี้ เราต้องหาพจน์ลำดับที่ P ของอนุกรม
มาดูตัวอย่างเพื่อเข้าใจปัญหา
Input
m = 7, mthTerm = 1458, n = 10, nthterm = 39366, p = 3
Output
18
วิธีแก้ปัญหา
สมมติว่าลำดับเรขาคณิตคือ
GP = a, a*r, a*(r^2), a*(r^3) ...
สูตรสำหรับพจน์ลำดับที่ T คือ
T-th Term = a * r^(T-1)
ตอนนี้ เราได้รับพจน์ลำดับที่ n และ m
mth term = a * (r^(m-1)) nth term = a * (r^(n-1))
หารสมการทั้งสอง เราจะได้
mth term / nth term = (r^(m - n))
ใช้สมการนี้ เราสามารถหาค่า r ได้ แล้วหา a จากค่าพจน์ลำดับที่ m
mth term = a * (r^(m-1))
หลังจากหา a และ r แล้ว ค่าพจน์ลำดับที่ p สามารถหาได้ง่ายๆ จาก
pth term = a * (r^(p-1))
โปรแกรมแสดงการทำงานของวิธีแก้
ตัวอย่าง
#include <cmath>
#include <iostream>
using namespace std;
double findRinGP(double m, double n, double mth, double nth) {
if (m < n)
return pow(nth / mth, 1.0 / (n - m));
return pow(mth / nth, 1.0 / (m - n));
}
double findTermGP(int m, int n, double mth, double nth, int p) {
double r = findRinGP(m, n, mth, nth);
double a = mth / pow(r, (m - 1));
return (a * pow(r, (p - 1)));
}
int main() {
int m = 7, n = 10, p = 5;
double mth = 1458, nth = 39366;
cout<<"The "<<p<<"th of the series is "<<findTermGP(m, n, mth, nth, p);
return 0;
}
ผลลัพธ์
The 5th of the series is 162