[С++, контрольная, нуб] Как посчитать дисперсию?

ivan221955

Нужно ввести значения и найти дисперсию. В душе не знаю, как это делается:(

qton

причем здесь c++?

ivan221955

Подруга пишет контрольную по С++

bodrova07

Выйди из душа, подойди к компу и открой гугл

ivan221955

Ахаха, из душа Я погуглила, что-то ничего не могу найти, поэтому и написала сюда

Serab

вообще-то тут не очень любят подобные запросы вроде "напишите-ка программу с контрольной". Но учитывая
Я погуглила

фото может очень сильно помочь решению задачи, ибо писать-то там 10 строк, не более.

qton

Пипец, а она мат. часть ботала хотя бы?

qton

Фотку подруги в студию :grin:

Serab

за фото подруги «ввести значения», за свои — «найти дисперсию» :grin:

bodrova07

Формула дисперсии
Как написать цикл в С++
Как складывать в С++ и умножать в С++ в курсе?

Serab

да на самом деле это контрольная, тем более у подруги, пытаться тут объяснить и научить бесполезно, имхо.

PooH

std::list подойдет, я думаю

ivan221955

Сообщение удалил

Serab

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main
{
int n;
cin >> n;
vector<double> numbers;
numbers.reserve(n);
for( int i = 0; i < n; ++i ) {
double x;
cin >> x;
numbers.push_back(x);
}

double sum = 0;
double sumsq = 0;
for( int i = 0; i < n; ++i ) {
sum += numbers[i];
sumsq += numbers[i] * numbers[i];
}

double mean = sum / n;
double ssq = (sumsq / n - mean * mean) * n / (n - 1);
double p = sqrt(ssq);


cout << "Sum: " << sum << endl;
cout << "Mean: " << mean << endl;
cout << "s^2: " << ssq << endl;
cout << "p: " << p << endl;

double z = sum;
double b = sum + mean;

// Тут осталось решить уравнение
double D = p * p - 4 * b * z;

if( D < 0 ) {
cout << "no solutions" << endl;
} else {
cout << "x1 = " << (-p - sqrt(D / (2 * b) << ", " << "x2 = " << (-p + sqrt(D / (2 * b) << endl;
}

return 0;
}

Serpent555

сдался, так и не дождавшись фоток :crazy:

Serab

:net:
четай тред, были фотки и даже сейчас можно найти

yolki

я думаю, там за один просмотр надо сделать и без использования массива
хотя у тебя именно так, да

Serab

ясен пень, просто надо же ввести и посчитать, если бы просто посчитать, то не нужен был бы массив, да.

sgalexandra

а в чем смысл уравнения в конце?

Serab

а я хз, похоже, что ни в чем :grin:
мб, это связано:

Anna74

 
#include <iostream>

using namespace std;

int main
{
int n;
double S, S2, x;

for( n=1,S=0,S2=0; ; n++ )
{
cout << n << "-ое число = ";
cin >> x;
S += x;
S2 += x*x;
cout << "дисперсия = " << (S2/n) - (S/n)*(S/n) << endl;
}
}

apl13

Пофиксил очевидные баги:
#include <iostream>
using namespace std;
int main {
int n;
for(n = 0; n < 300; n++) {
cout << "Нет сисек — нет программы! :umnik:" << endl;
}
}

Fimida

Borland С++ или
Как?
Оставить комментарий
Имя или ник:
Комментарий: