Автор работы: Пользователь скрыл имя, 27 Апреля 2012 в 11:56, курсовая работа
Целью работы является изучение и описание назначения, и примеры использования случайных чисел в программировании.
Курсовая работа состоит из двух основных частей: теоретической и практической. В теоретической части будет рассмотрено понятие «случайного числа» и «псевдослучайного числа», понятие «генератора случайных чисел», применение случайных чисел, методы генерирования случайных и псевдослучайные чисел. В практической части – применение случайных чисел для решения задач на языке Pascal,применение метода Монте-Карло для решения задач.
ВВЕДЕНИЕ…………………………………………………………………...……….3
ГЛАВА 1. СЛУЧАЙНЫЕ И ПСЕВДОСЛУЧАЙНЫЕ ЧИСЛА.
ГЕНЕРАТОРЫ СЛУЧАЙНЫХ ЧИСЕЛ……………………...……….. 4
1.1.Определение случайного и псевдослучайного числа.
Формы случайных чисел………………………………………........…....4
1.2.Генераторы случайных чисел (ГСЧ) и их характеристика…...…..6
1.3.Аппаратные ГСЧ……………………………………………...……....7
1.4. Табличные ГСЧ…………………………….………………..…...…..9
1.5.Программные ГСЧ…………………………………………...……...10
1.6.Области применения случайных чисел…………………..………..15
ГЛАВА 2. СЛУЧАЙНЫЕ ЧИСЛА В PASCAL…………………………….……...16
2.1 Генератор случайных чисел в Pascal ABC……………….…….….16
2.2. Рассмотрение примеров………………………………………….....19
ЗАКЛЮЧЕНИЕ…………………………………………………………………….....24
СПИСОК ИСПОЛЬЗОВАНОЙ ЛИТЕРАТУРЫ………………………………......25
что можно
заменить на
Выбирая
за центр окружности и квадрата начало
системы координат, тогда выбрать точку
- это значит задать ее координаты: для
числа X и Y. Точка принадлежит квадрату,
если -1≤X≤1 и -1≤Y≤1. Если X*X+Y*Y≤1,
то точка попадает в круг F, иначе она
лежит вне круга. Это и есть математическое
соотношение, позволяющее для каждой точки
определять, лежит ли она в F., Выбранная
математическая модель для решения задачи
на
нахождение площади использует случайные
числа (такие модели называют вероятностными).
В связи с чем при запуске программы для
одного и того же количества случайных
чисел результаты будут разными. Результатам
вычислений можно доверять, так как в теории
вероятностей имеется строгое математическое
доказательство метода Монте-Карло.
Program MonteKarlo; Uses crt;
Var x,y:real;
n,kr,kw:integer;
begin
Clrscr; Writeln ('Вычисление числа ПИ методом
МОНТЕ-КАРЛО.');
Writeln;
Write ('Введите количество случайных чисел.
n=');
repeat
x:=random;
until keypressed;
Read (n);
GotoXY (20,8);Writeln ('ЖДИТЕ...');
kr:=0; kw:=0;
repeat
x:=(0.5-random)*2; y:=(0.5-random)*2;
kw:=kw+1;
if x*x+y*y<=1 then kr:=kr+1;
until kw>n;
Clrscr;
GotoXY (20,8); Writeln ('n=',n);
GotoXY(20,10); Writeln ('π=',kr/kw*4:2:6);
end.
Назначение отдельных
частей программы. а)Program
MonteKarlo;
Var x,y:real;
n,kr,kw:integer;
x,y - координаты случайной точки,
n- количество случайных точек, попавших
в квадрат,
kr - количество случайных точек попавших
в круг kw - счетчик точек, по выходе из цикла
равен количествуслучайных точек, попавших
в квадрат.
б)Clrscr; Writeln ('Вычисление
ПИ методом МОНТЕ_КАРЛО.');
Writeln;
Write ('Введите количество случайных чисел.
n='); Печать заголовка и подсказки на
ввод количества случайных точек.
в)repeat
x:=random;
until keypressed;
Read (n);
GotoXY (20,8); Writeln ('ЖДИТЕ...');
Цикл, предназначенный усилить непредсказуемость
последовательности случайных чисел.
Чтение с клавиатуры количества случайных
точек и вывод в позиции (20,8) указания ждать
конца выполнения программы.
г) kr:=0; kw:=0;
Установление счетчика точек, попавших
в квадрат и круг, в нулевое состояние.
д) repeat
x:=(0.5-random)*2; y:=(0.5-random)*2;
kw:=kw+1;
if x*x+y*y<=1 then kr:=kr+1;
until kw>n;
Основной расчетный цикл в котором команда:
x:=(0.5-random)*2; y:=(0.5-random)*2 формирует координаты
случайных точек, попавших в квадрат с
координатами -1≤X≤1 и -1≤Y≤1,
kw:=kw+1 подсчитывает количество сформированных
случайных точек.
if x*x+y*y<=1 then kr:=kr+1 подсчитывает количество
случайных точек попавших внутрь круга.
until kw>n выход из цикла по достижении количества
случайных точек превосходящих заданное
количество n. е) Clrscr;
GotoXY (20,8); Writeln ('n=',n);
GotoXY(20,10); Writeln ('ПИ=',kr/kw*4:2:6);
Стереть с экрана и вывести на печать в
позиции (20,8) количество случайных точек
и результат вычислений в позиции (20,10),
причем для печати целой части числа отвести
не менее 2-х позиций, для печати дробной
части числа отвести 6 позиций.
Таблица 2.1- Анализ полученных результатов
n | результат |
10 | 2.909091 |
50 | 3.058824 |
50 | 3.372549 |
50 | 2.901961 |
200 | 3.323383 |
200 | 3.203980 |
200 | 3.104478 |
1000 | 3.148851 |
1000 | 3.104895 |
1000 | 3.144855 |
Таким
образом, время работы программы
и результат зависят от количества
выбранных точек. Чем больше точек,
тем больше время работы программы и точнее
результат.
ЗАКЛЮЧЕНИЕ
В программировании достаточно часто находят применение последовательности чисел, выбранных случайным образом из некоторого множества. Они используются при отладке, тестировании программ, моделировании случайных процессов, а также при определении эффективности того или иного алгоритма. Случайные числа можно получать (генерировать) разными способами. Для этого используются аппаратные, табличные или программные генераторы. Программные генераторы не дают «настоящих» случайных чисел, полученные таким образом числа являются псевдослучайными. Такие генераторы в качестве стандартных функций используются во всех языках программирования. В системе программирования Pascal тоже есть такая функция –Random. Входе работы мною были сделаны следующие выводы:
СПИСОК ИСПОЛЬЗОВАНОЙ ЛИТЕРАТУРЫ: