👤

Se da un vector cu n elemente. Sa se inlocuiasca fiecare element din sir cu media aritmetica a celorlalte.

Răspuns :

► PROGRAM C++ :

#include <iostream>

using namespace std;

int main(){

//Citire vector

int n;

float v[100];

cin >> n;

for(int i=0; i<n;i++) cin >> v[i];

//Determinare suma

int suma = 0;

for(int i=0; i<n;i++) suma += v[i];

//Inlocuire fiecare numar cu m.a. a celorlalte numere

for(int i=0; i<n;i++) v[i] = float(suma-v[i])/(n-1);

//Afisare rezultat

for(int i=0; i<n;i++) cout << v[i];

}

► Explicatie :

Citim numerele, calculam suma. Pentru fiecare element v[i] media aritmetica a celorlalte numere este suma - v[i] supra n-1.

In mod matematic fancy

[tex]\forall i \in \overline{0,n-1}, v_i \leftarrow \frac{\sum_{i=0}^{n-1}-v_i}{n-1}, unde\\\\v \in R^n, n \in N, n \geq 2[/tex]

► Nota :

Se putea realiza programul folosind doar doua instructiuni for, una in care avem citirea si calculul sumei iar alta in care avem calcularea noilor valori si afisarea acestora. Aceasta idee ramane "tema" pentru cititor.