Informatică, întrebare adresată de andreeaflorina, 8 ani în urmă

Cum se face o functie pentru media geometrica a elementelor unui vector in C++?

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

   double num, prod=1, mg;

   int n, i;

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> num;

       prod=prod*num;

   }

   double e=1.0/n;

   mg=pow(prod, e);

   cout << mg;

   return 0;

}

Explicație:

media geometrică ese radical de ordinul n din produsul elementelor.

de exemplu, media geometrică a 3 numere 6 10 2  este

\sqrt[3]{6*10*2},~care~poate~fi~scris~ca~putere~(6*10*2)^{\frac{1}{3}}

Din start aflăm produsul elementelor vectorului, pe care nu l-am declarat.

Pentru baza puterii folosim variabila prod, pentru exponentul puterii folosim variabila e=1/n.  Ca rezultatul sa se obtină real scriem 1.0/n.

Funcţia pow se află în librăria cmath, deaceea o includem.

sintaxa funcţiei pow:   pow(baza, exponentul)

Alte întrebări interesante