Giả sử chúng ta có ba số nguyên A, B và N. Chúng ta phải tìm N trung bình hình học giữa A và B. Nếu A = 2, B = 32, và N = 3, thì kết quả sẽ là 4, 8, 16.
Nhiệm vụ đơn giản là chúng ta phải chèn N phần tử vào cấp số nhân (Geometric Progression) nơi A và B là số hạng đầu và cuối của dãy đó. Giả sử G1, G2, .... Gn là n trung bình hình học. Vậy dãy sẽ là A, G1, G2, .... Gn, B. Vì vậy B là số hạng thứ (N + 2) của dãy. Vì vậy chúng ta có thể dùng các công thức sau:
$$B=A*R^{N+1}$$
$$R^{N+1}=\frac{B}{A}$$
$$R=\lgroup \frac{B}{A}\rgroup^{\frac{1}{N+1}}$$
Ví dụ
#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); }
Kết quả
9 27