สมมติว่าเรามีจำนวนเต็มสามจำนวน A, B และ N เราต้องหาค่าเฉลี่ยเรขาคณิต N ค่าระหว่าง A และ B ถ้า A = 2, B = 32, และ N = 3 ผลลัพธ์จะเป็น 4, 8, 16
งานนี้ง่าย เราต้องแทรก N จำนวนในลำดับเรขาคณิต (Geometric Progression) ที่ A และ B เป็นพจน์แรกและพจน์สุดท้ายของลำดับนั้น สมมติ G1, G2, ..., Gn เป็นค่าเฉลี่ยเรขาคณิต n ตัว ดังนั้นลำดับจะเป็น A, G1, G2, ..., Gn, B ดังนั้น B คือพจน์ที่ (N + 2) ของลำดับ ดังนั้นเราสามารถใช้สูตรเหล่านี้ -
$$B = A \times R^{N+1}$$
$$R^{N+1} = \frac{B}{A}$$
$$R = \left(\frac{B}{A}\right)^{\frac{1}{N+1}}$$
ตัวอย่างโค้ด
#include <iostream>
#include <cmath>
using namespace std;
void showMeans(int A, int B, int N) {
float R = (float)pow(float(B / A), 1.0 / (float)(N + 1));
for (int i = 1; i <= N; i++)
cout << (A * pow(R, i)) << " ";
}
int main() {
int A = 3, B = 81, N = 2;
showMeans(A, B, N);
}
ผลลัพธ์
9 27