Генерация линейно возрастающего распределения

Распределение непрерывной вещественной величины с вероятностью линейно-возрастающей от 0 до 1 дает следующий, очень простой алгоритм

Функция ГенераторЛинейноВозрастающегоРаспределения

x=RAND()

Возврат x^0.5

Конец Функции

Генерация линейно возрастающего распределения - student2.ru

Рис.2 Гистограмма распределения x^0.5 для x=rand().

Гистограмма результатов 400000 испытаний линейно-возрастающего генератора непрерывных случайных величин от 0 до 1 (количество разбиений интервала (0,1) - 100) приведениа на рисунке 2.

Генерация линейно возрастающего распределения - student2.ru

Рис. 3 Гистограмма распределения x^1.5 для x=rand()

Генерация линейно возрастающего распределения - student2.ru

Рис.4 Гистограмма распределения x^2 для x=rand()

Генерация линейно возрастающего распределения - student2.ru

Рис.5 Гистограмма распределения x^4 для x=rand()

Генерация линейно возрастающего распределения - student2.ru

Рис.6 Гистограмма распределения x^0.2 для x=rand()

Генерация линейно возрастающего распределения - student2.ru

Рис.7 Гистограмма распределения x^0.7 для x=rand()

Для получения более сложного – комбинированного распределения можно использовать комбинацию степенных распределений. Так, если исходные базовые распределения определяются по формулам: Генерация линейно возрастающего распределения - student2.ru , Генерация линейно возрастающего распределения - student2.ru , … Генерация линейно возрастающего распределения - student2.ru , где x=rand(), тогда формула для комбинированного распределения должна иметь вид:

Генерация линейно возрастающего распределения - student2.ru

Генерация линейно возрастающего распределения - student2.ru

Рис.8 Гистограмма распределения (x^0.2 + x^4)/2 для x=rand()

Контрольные вопросы

1. Что понимается под процедурой генерации некоторых величин, значений? Приведите примеры.

2. Дать определение непрерывных, дискретных случайных чисел.

3. Дать понятие генератора случайных чисел.

4. Дать определение вероятности.

5. Дать определение функции распределения плотности вероятности.

6. Привести примеры функции распределения плотности вероятности.

7. Дать понятие гистограммы.

8. Где используются гистограммы для отображения плотности распределения вероятности непрерывной случайной величины?

Задания

1. Написать подпрограмму-функцию, возвращающую дискретную случайную величину, характер распределения которой приведен в таблице:

хi
pi 0,4 0,1 0,3 0,2

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

2. Функция распределения случайной величины имеет вид:

Генерация линейно возрастающего распределения - student2.ru 0 при x<=0,

f(x)= x/2 при 0<x<=2,

1 при x>2.

Найти вероятность того, что случайная величина примет значение в интервале [1;3).

Считать заданные вероятности из файла (txt, doc, xls). Заполнить dbf таблицу расчетными величинами.

3. Продажа сезонных товаров. Таблица отчет должна состоять из следующих столбцов: порядковый номер заказа (3000 строк), тип заказа, код клиента, код товара, дата выполнения заказа.

Типы заказов сгенерировать случайным образом: льготный (вероятность 0.2), обычный (вероятность 0.5), доставка (вероятность 0.3).

Код клиента изменяется от 1 до 40. Код клиент сгенерировать случайным образом: клиенты с номером 1-10 с вероятностью 0.05, клиенты с номерами 11-20 с вероятностью 0.01, клиенты 21-40 с вероятностью 0.02.

Код товара сгенерировать так, чтобы товары с 1 по 10 номер имели наибольшую вероятность в зимние месяцы, товары с номером с 11 по 20 имели наибольшую вероятность в летние месяцы, остальные товары с равной вероятностью распределились по весенним и осенним месяцам.

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

4. Таблица отчет должна состоять из следующих столбцов: порядковый номер заказа (3000 строк), тип заказа. Создать генератор для разных типов заказов. Типы заказов принимают значения: обычный (вероятность 0.4), со скидкой 10% (вероятность 0.1), со скидкой 25% (вероятность 0.2), с доставкой (вероятность 0.3).

5. Таблица отчет должна состоять из следующих столбцов: порядковый номер заказа (3000 строк), код товара. Сделать генератор дискретного распределения кода товара. Товары с 1 по 5 имеют максимум продаж в летние месяцы, товары с 6 по 15 имеют максимум продаж в зимние месяцы, остальные товары с равной вероятностью распределить по оставшимся месяцам.

6. Биржа труда. Таблица отчет должна состоять из следующих столбцов: порядковый номер претендента (3000 номеров), код клиента, дата регистрации, код специальности, количество вакансий.

Возраст клиента распределен непрерывно от 18 до 50. Вид плотности распределения вероятности P приведен на рисунке.

Генерация линейно возрастающего распределения - student2.ru

Код клиента сгенерировать случайным образом: клиенты с номером 1-15 с вероятностью 0.03, клиенты с номерами 16-30 с вероятностью 0.01, клиенты 31-60 с вероятностью 0.01.

Дату сгенерировать за последние полгода (по нормальному закону распределения).

Код специальности сгенерировать так, чтобы специальности с 1 по 10 номер имели наименьшую вероятность в весенние месяцы, специальности с номером с 11 по 25 имели наибольшую вероятность в зимние месяцы, остальные специальности с равной вероятностью распределились по весенним и осенним месяцам.

Количество вакансий сгенерировать так, чтобы вакансии по специальности с 1 по 10 имели наибольшую вероятность, по специальности с 11 по 25 имели равную вероятность.

7. Таблица отчет должна состоять из следующих столбцов: порядковый номер заказа (1000 строк), код товара. Сделать генератор дискретного распределения кода товара. Товары с 1 по 10 имеют максимум продаж в летние месяцы, товары с 11 по 20 имеют максимум продаж в весенние месяцы, остальные товары с равной вероятностью распределить по оставшимся месяцам.

8. Таблица отчет должна состоять из следующих столбцов: порядковый номер заказа (1500 строк), тип заказа. Создать генератор для разных типов заказов. Типы заказов принимают значения: обычный (вероятность 0.4), со скидкой 10% (вероятность 0.2), со скидкой 25% (вероятность 0.1), с скидкой 30% (вероятность 0.3).

9. Таблица вакансий на бирже труда должна состоять из 100 строк (код специальности, количество вакансий, дата). Код специальности сгенерировать так, чтобы специальности с 1 по 10 номер имели наименьшую вероятность в зимние месяцы, специальности с номером с 11 по 25 имели наибольшую вероятность в летние месяцы, остальные специальности с равной вероятностью распределились по весенним и осенним месяцам.

10. Сгенерировать числовую последовательность так, чтобы 1 выпадала с вероятностью 0.2, 2 – с вероятностью 0.4, 3 – с вероятностью 0.3, 4 – с вероятностью 0.1. Построить гистограмму.

11. Сгенерировать числовую последовательность так, чтобы 1 и 2 выпадали с наибольшей вероятностью, 3 и 4 с наименьшей вероятностью. Построить гистограмму.

12. Сгенерировать числовую последовательность так, чтобы числа от 1 до 8 выпадали с равной вероятностью. Поострить гистограмму.

13. Сгенерировать числовую последовательность так, чтобы числа от 1 до 5 выпадали с наименьшей вероятностью, от 6 до 10 – с наибольшей вероятностью.

14. Построить гистограмму линейно-убывающего генератора непрерывных случайных величин от 0 до 10.

Список рекомендуемой литературы и источников

1. Бахвалов Н.С. Численные методы / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков – Издат. Бином, 2001. – 630 с.

2. Лавров С.С. Программирование. Математические основы, средства, теория / С.С. Лавров – Издательство: СПб: БХВ-Петербург, 2001. – 320 с.

3. Самарский А.А. Введение в численные методы / А.А. Самарский – М.: Наука, 1987. – 459 с.

4. Калиткин Н.Н. Численные методы / Н.Н. Калиткин – М.: Наука, 1978. – 512 с.

5. Клепинин В.Б. Visual FoxPro 9.0 / В.Б. Клепинин, Т.А. Агафонова – Изд. BHV – СПБ Санкт – Петербург, 2008. – 1216 с.

6. Visual FoxPro 9.0. Учебный курс. Век +, Корона-Век, 2009. – 528 с.

7. Каратыгин С.А. Visual FoxPro 7.0 / С.А. Каратыгин, А.Ф. Тихонов, Л.Н. Тихонова – Изд. “БИНОМ-ПРЕСС” – Тверь, 2002. – 656 с.

8. Менахем Базиян. Использование Visual FoxPro 6.0 / Менахем Базиян – Издательский дом “Вильямс” – Москва, 2000. – 920 с.

9. Лебедев А.Н. Visual FoxPro 9.0 / А.Н. Лебедев – Издательство “НТ Пресс”– Москва, 2005. – 329 с.

10. Гарбер Г. Основы программирования на Visual Basic и VBA в Excel 2007 / Г. Гарбер. – Солон-пресс, 2008. – 192с.

11. Гарнаев А.Ю. Excel, VBA, INTERNET в экономике и финансах / А.Ю. Гарнаев – СПб.: БХВ-Петербург, 2003. – 816 с.

12. Гарнаев А.Ю. Самоучитель VBA / А.Ю. Гарнаев – СПб.: БХВ-Петербург, 2004. – 509 с.

13. Слепцова Л.Д. Программирование на VBA в Microsoft Office 2007. Самоучитель / Л.Д. Слепцова – Диалектика, Вильямс, 2007. – 432 с.

14. Дейтел Х. C#. Наиболее полное руководство / Х. Дейтел – Издательство: БХВ-Петербург, 2006. – 1056 с.

15. Нэш Т. С# 2008 Ускоренный курс для профессионалов / Т. Нэш – Издательство: Вильямс, 2008. – 576 с.

16. Калмыкова О.В. Основы программирования / О.В. Калмыкова, В.П. Грибанов, Р.И. Сорока Моск. гос. ун-т экономики, статистики и информатики. – М., 2001. – 129 с.

17. Златопольский Д.М. Сборник задач по программированию / Д.М. Златопольский – 2-е изд., перераб. и доп. – СПб.: БХВ – Петербург, 2007. – 240 с.

18. FOXPRO CLUB для Visual FoxPro [Электронный ресурс] – Режим доступа: http://www.foxclub.ru

19. Кудрина Е.В. Программирование на языке С#: разработка консольных приложений [Электронный ресурс] / Е.В. Кудрина, М.В. Огнева, М.С. Портенко – Режим доступа: http://www.intuit.ru/

Наши рекомендации