Математическое ожидания распределения
Короче говоря - у меня один вопрос, но очень сложный ... ну по крайней мере для меня ...
Что такое "Математическое ожидания распределения" ?
Короче полностью вопрос звучит так (это часть из техзадания у меня на работе): На основании полученного распределения отсортированных данных в массиве с количеством равным математическому ожиданию этого распределения - указанные данные удалить из массива.
Что это ? :eek: Я в шоке ! :confused:
Как это можно реализовать на C++ ? :eek:
У кого есть какие идеи - пожалуйста отзовитесь ... :)
Заранее благодарен.
По смыслу - это наиболее часто возникающее число, например, для нормального распределения оно близко к среднему арифметическом.
В тех. задании у вас бред... Извиняюсь за прямоту :)
Сам знаю, что бред - но нужно здать этот бред ... :(
"На основании полученного распределения отсортированных данных в массиве, [с количеством] - чё это?, равным математическому ожиданию этого распределения, указанные данные удалить из массива."
Тупо среднее арифметическое, видимо (какое там ещё распределение можно получить из отсортированного массива?).
А если массив не отсортированный ? - какая тогда разница ? Я не силен в таких вопросах - потому и спрашую ... ;)
Ну я в принципе ... как бы догадался ... но все же решил спросить ... потому как, вроде с школьной математики помнится что-то ...
---
Короче говоря "Математическое ожидание" - это среднее арифметическое (в моем случае) ?! - правильно ?!
Насколько я помню математическое ожидание дискретной случайной величины равно сумме произведений ее значений на соответствующую вероятность их появления.
Der Meister навел на мысль, возможно задание звучит так: найти мат. ожидание данных в массиве и удалить элементы равные мат. ожиданию.
Похоже, что массив отсортирован именно для удобства нахождения мат. ожидания - в отсортированном массиве легко найти вероятность появления значения (поделив количество значений на размер массива).
---
Короче говоря "Математическое ожидание" - это среднее арифметическое (в моем случае) ?! - правильно ?!
Оно равно среднему арифметическому при равномерном распределении, и близко к нему при нормальном. При других распределениях оно может очень сильно отличаться от среднего. Т.к. у вас закон распределения неизвестен нужно считать по общей формуле (в аттаче).
где x[SIZE="1"]i[/SIZE] - значение случайной величины, а P[SIZE="1"]i[/SIZE] - вероятность ее появления, т.е. ее количество в массиве деленное на размер массива.
#include <vector>
...
// Инициализация массива
vector<double> Arr;
Arr.push_back(1);
Arr.push_back(2);
Arr.push_back(2);
Arr.push_back(1);
Arr.push_back(3);
// Сортируем его
sort(Arr.begin(), Arr.end());
// Находим мат. ожидание
double M = 0; // Мат. ожидание
int count = 0;
vector<double>::iterator Cur;
vector<double>::iterator Last = Arr.begin();
for (Cur = Arr.begin(); Cur <= Arr.end(); Cur++)
{
if (Last != Cur)
{
double P = (double)count / Arr.size(); // Вычисляем вероятность
M += *Last * P;
Last = Cur;
count = 0;
}
count++;
}
Ну и осталось только удалить... Опять же не понятно - мат. ожидание может вообще не совпасть ни с одним элементом. В общем уточняйте ТЗ :rolleyes:
Ваш вариант мне очень понравился - потому, что как по мне, он ближе всего к реальности (моему ТЗ). Пока реализую его и в понедельник покажу на работе результат. Если это действительно так - тогда все просто супер, всем учасникам +1 ! А если нет - уточню ТЗ и обращусь снова сюда за помощью и все равно всем учасникам будет +1 ! :D
Дык вроде и получим среднее арифметическое. Покажу на примере:
Массив {1, 2, 2, 3, 4}
Вероятности {1/5, 2/5, 1/5, 1/5}
Матожидание 1/5 + 4/5 + 3/5 + 4/5 = 2 + 2/5
Среднее арифметическое: (1 + 2 + 2 + 3 + 4) / 5 = 2 + 2/5.
Массив {1, 2, 2, 3, 4}
Вероятности {1/5, 2/5, 1/5, 1/5}
Матожидание 1/5 + 4/5 + 3/5 + 4/5 = 2 + 2/5
Среднее арифметическое: (1 + 2 + 2 + 3 + 4) / 5 = 2 + 2/5.
Я тоже вчера ночью заметил это... Пробовал явно не нормальные распределения - все равно равно среднему арифметическому :)
Возможно, что они равны... :)
UPD: погонял тесты - они действительно равны!
__________________
и не забудьте простить оксотника :D
Тервер и матстатистика - это две большие разницы.
Возьми Гмурмана или Венцеля, или как там его - в серьезных заданиях полностью полагаться на википедию не стоит (вспомним ЧНЯВ :) ).
Если у вас есть только результаты выборок (кстати, что там с генеральной совокупностью?), и вы их анализируете, то вы не знаете и по определению не можете узнать мат. ожидания, потому что не знаете закона распределения. Вы можете только найти оценку этого матожидания (выборочное среднее).
А дальше надо смореть, что оценка несмещенная, состоятельная и эффективная и т.д.
Мне тоже сдается, что это так. :mad: