Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหา N ค่าเฉลี่ยเรขาคณิตระหว่าง A และ B โดยใช้ C ++


สมมติว่าเรามีจำนวนเต็ม A, B และ N สามจำนวน เราต้องหาค่าเฉลี่ยเรขาคณิต N ระหว่าง A และ B หาก A =2, B =32 และ N =3 ผลลัพธ์จะเป็น 4, 8, 16

งานง่าย ๆ เราต้องแทรกองค์ประกอบจำนวน N ในความก้าวหน้าทางเรขาคณิตโดยที่ A และ B เป็นเทอมแรกและเทอมสุดท้ายของลำดับนั้น สมมุติว่า G1, G2, …. Gn คือ n วิธีทางเรขาคณิต ดังนั้นลำดับจะเป็น A, G1, G2, …. Gn, B. ดังนั้น B คือเทอมที่ (N + 2) ของลำดับ ดังนั้นเราจึงสามารถใช้สูตรเหล่านี้ได้ −

$$B=A*R^{N+1}$$

$$R^{N+1}=\frac{B}{A}$$

$$R=\lgroup \frac{B}{A}\rgroup^{\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