Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/47: Рейтинг темы: голосов - 47, средняя оценка - 4.62
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
1

Экспоненциальное распределение

30.11.2016, 22:46. Показов 9374. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача, все сделал, кроме распределения, не понимаю что с ним делать и как применить, чтобы получилось "примерно 50 минут"
Миниатюры
Экспоненциальное распределение  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2016, 22:46
Ответы с готовыми решениями:

Генерирование векторных случайных величин (экспоненциальное распределение)
Здравствуйте,подскажите пожалуйста существующие генераторы на C# генерирующие векторные...

Двумерное нормальное распределение (Гаусса). Распределение значений в матрице
Здравствуйте. Для реализации алгоритма внедрения водяного знака мне нужно сделать распределение...

Экспоненциальное распределение
Известно, что X~E(2). Найти плотность вероятности X^2. Неужели это будет \lambda e^{-\lambda x }...

Экспоненциальное распределение
При генерации случайных величин с помощью Exponential(1,0,500), например, величины распределяются...

3
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.12.2016, 01:42 2
Мое мнение - в условии какая-то наркомания. Я не умею оперировать сложными вещами, будем отталкиваться от базовых понятий:
0. Природа - штука сложная, невозможно точно описать какое-то явление или точно предсказать вероятность наступления какого-то события.
1. Абстрактная модель - это упрощенное описание какого-то сложного природного явления.
2. Моделирование - попытка описать сложное природное явление в виде модели, делая некоторые допущения. Например, нам не надо знать из каких атомов состоит криво нарисованный серым карандашом квадрат на мокром листе картона в 1000000000000000 секунду от Рождества Христова, нас может интересовать только размер и расположение этого квадрата в данный момент времени.
2. Описывать модель можно различными способами, в данном случае это необходимо сделать математически.
3. Вероятность - это некоторая величина в пределах [0; 1], которая показывает возможность наступления события в числовом виде для определенного момента времени. Где 0 - невозможность наступления события, 1 - событие наступит в ожидаемую единицу времени.
4. Экспонента: https://www.cyberforum.ru/cgi-bin/latex.cgi?f(x) = {e}^{x}

В задаче предлагают вычислять вероятность поступления детали на обработку с помощью экспоненциального распределения:
https://www.cyberforum.ru/cgi-bin/latex.cgi?P(x) = 1 - {e}^{-\lambda x}, где x - исследуемый период времени в минутах (потому что мне так захотелось), λ - среднее число деталей за единицу времени (1 минута).

Я не люблю оперировать дробями и выполнять какие-то ненужные преобразования, так что формулу можно немного подправить:
https://www.cyberforum.ru/cgi-bin/latex.cgi?P(x) = 1 - {e}^{\frac{-x}{time}}, где time - среднее время поступления одной детали, то самое число 50.

Итого, вероятность можно вычислить следующим образом:
C#
1
2
3
4
private static double P(int x, double time)
{
    return x < 0 ? 0 : 1 - Math.Exp(-x / time);
}
Т.е. вероятность поступления n-ой детали в первую минуту равна 0,0198013266932447 или что-то около 2%. Зато в 50ую минуту - аж 0,632120558828558 или что-то около 63%.
Так как детали поступают по конвейеру, то вероятность поступления детали n+1 равна 0 до тех пор, пока не поступит деталь n. Как только поступит деталь n, следует вычислять вероятность поступления детали n+1 таким образом, как если бы это была деталь n. Так как вероятность не имеет память: вероятность наступления одного события не влияет на вероятность наступления другого события.

Итого, используя результат этой функции, необходимо смоделировать жизненный цикл конвейера из 500 деталей. Результатом моделирования будет некоторая метрика определенного явления, которая будет несильно изменяться от запуска к запуску моделирующей программы.

Учитывая все описанные факты, можно прочувствовать глубину наркомании в задании или сколько я тут упрощений нагородил.
1
931 / 460 / 232
Регистрация: 02.06.2016
Сообщений: 731
01.12.2016, 10:55 3
WestSide072, когда генерируешь временной интервал ипользуй обратное преобразование:
C#
1
2
3
Random rnd = new Random();
double T = 50;                              // ровно 50 минут
double t = -T * Math.Log(rnd.NextDouble()); // примерно 50 минут
Получишь примерно экспоненциально распределенную величину. В среднем она даст нужное время:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Random r = new Random();
double average = 0.0;
int n = 10000;
 
double T = 50; // ровно 50 минут
for(int i = 0; i < n; i++)
{
    double t = -T * Math.Log(r.NextDouble()); // примерно 50 минут:
    Console.Write(Math.Round(t) + " ");
    average += t / n;
}
 
Console.WriteLine("В среднем: " + average);
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
01.12.2016, 18:02  [ТС] 4
В общем преподаватель таким ТЗ имел в виду генерирование случайных величин таким способом
C#
1
2
3
4
5
6
7
8
9
10
            public double RandExp(double lyambda)
            {
                double xk = R.NextDouble();
                return ((-1d / lyambda) * Math.Log(xk));
            }
...
            for (int i = 0; i < input_n.Value; i++)
            {
                details.Add(new detailClass() { n = 0, time = RandExp(1d / 50) });
            }
таким образом среднее арифмитическое время получается ~50...
0
01.12.2016, 18:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2016, 18:02
Помогаю со студенческими работами здесь

Экспоненциальное распределение.
У меня в задаче дано что в среднем приходит 10 заявок в месяц.Я написал функцию для генерации...

экспоненциальное распределение
Как узнать соответствует ли распределение случайной переменной экспоненциальному? Добавлено...

Экспоненциальное распределение
Всем привет! Нужен код для экспоненциального распределения лазерного излучения! помогите...

Экспоненциальное распределение величины
Добрый день! Помоги решить задачку с помощью Excel. Необходимо построить распределение величины...

Инвертировать экспоненциальное распределение
Доброго времени суток. Создаю массив чисел, распределенных по экспоненциальному распределению по...

Экспоненциальное распределение вещественных значений
Подскажите как мне заменить такую конструкцию double getLrand(double l){ return...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru