Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2016, 15:05   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию С#, расчет плотности вероятности функции

Есть функция y(n). Просто реализация чисел, например double[] y = new double{1.1, 3.2, 2.5, 20, 30, 25}. Нужно получить такую функцию, чтобы в заданных мною интервалах вычислялось количество попадания того или иного значения y в данный интервал. Например, задаем 3 интервала: [0-10),[10-20), [20-35). Нужно, чтобы посчиталось количество попаданий величин y в каждый из этих интервалов. Я должен, в итоге, получить 2 массива. В первом - начала интервалов, то есть 0, 10 и 20. Во втором - число попаданий. Для моих данных это 3, 0, 3.

Я могу решить это for+if, но не думаю, что нет решений попроще. Поэтому просьба подкинуть идей, как это проще и быстрее сделать. Это всего лишь часть кода, она должна быть оптимально написана и как можно проще.

Либо может знает кто, как построить y(n) с помощью гистограммы? Чтобы самому ничего не надо было считать?
Krasi вне форума Ответить с цитированием
Старый 28.01.2016, 18:40   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Если бы интервалы были равные по длине, то можно было бы использовать целочисленное деление y на длину интервала.
type_Oleg вне форума Ответить с цитированием
Старый 29.01.2016, 08:00   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Так думаю, что замечание от type_Oleg верное.
Вместе с тем, при построении гистограммы следует выбирать равные интервалы. В противном случае распределение будет искажено.
Для ясности сказанного: равномерное распределение, при выборе неравных интервалов, станет "окрашенным".
Я, например, задаюсь количеством интервалов (размер массива).
Целочисленное деление значения на величину интервала определяет номер элемента массива, который следует инкрементировать.
На следующем шаге можно нормировать полученные значения либо на число точек в максимуме, если такой предполагается, либо на общее число измерений.

PS: Пример.
1. Находим min, max.
2. d=[(max-min)/N] - целая часть: размер интервала.
3. M = [(Ai - min)/d] - номер интервала
4. S[M] = S[M] + 1

Если интервалы неравномерные (ну вот так надо), то длины интервалов помещаем в массив.
Заводим переменную, которая будет выполнять роль индекса, пусть это Index.
Организуем цикл по нашим данным, внутри которого в цикле repete - until или do - while для C#, последовательно вычитаем интервалы из исходного числа до тех пор, пока не получим результат меньше нуля. При этом незабываем инкрементировать Index.


Как-то так, ...
Как-то так, ...

Последний раз редактировалось ViktorR; 29.01.2016 в 09:22.
ViktorR вне форума Ответить с цитированием
Старый 29.01.2016, 18:09   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Не, в принципе можно и неравные интервалы. Ведь на гистограмме откладывают не просто количество или частоты попаданий , а количество или частоты , деленные на длину интервала.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет вероятности лотерейной игры coNsept Общие вопросы C/C++ 0 22.01.2014 00:24
Промежуток рисунка. Расчет функции Silverstone Общие вопросы Delphi 0 16.12.2012 21:13
На воду опущен шар радиуса r, изготовленный из вещества плотности r Verushka Помощь студентам 2 20.04.2012 01:45
расчет комплексной функции ошибка ovosch1992 Общие вопросы Delphi 1 26.12.2011 11:55
Сапер: расчет вероятности нахождения мины Explode Помощь студентам 0 04.10.2010 00:33