1 Программирование на языке Паскаль Тема 12. Случайные числа © К.Ю. Поляков, 2006-2008.

Презентация:



Advertisements
Похожие презентации
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Advertisements

К. Поляков, Программирование на языке Паскаль Часть II Тема 3. Обработка массивов.
1 Программирование на языке Паскаль Тема 11. Анимация © К.Ю. Поляков,
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема 8. Графики функций © К.Ю. Поляков,
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков,
К.Ю. Поляков, Е.А. Ерёмин, Программирование на языке Паскаль § 62. МассивыМассивы.
Решение задач с использованием массивов
К. Поляков, Программирование на языке Паскаль Часть II Тема: Поиск максимального элемента массива.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема 13. Функции © К.Ю. Поляков,
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Общий вид инструкции цикла ДО: REPEAT UNTIL ; Примечание: Особенность цикла ДО в том, что между словами repeat и until можно записать любое количество.
1 Программирование на языке Паскаль Тема 7. Графика © К.Ю. Поляков,
Линейные и разветвляющиеся алгоритмы. Реализация на языке Pascal.
1 Программирование на языке Паскаль Тема 5. Циклы с условием © К.Ю. Поляков,
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Транксрипт:

1 Программирование на языке Паскаль Тема 12. Случайные числа © К.Ю. Поляков,

2 Случайные числа Случайные явления: везде… бросание монеты ("орел" или "решка") падение снега броуновское движение помехи при телефонной связи шум радиоэфира Случайные числа – это такая последовательность чисел, для которой невозможно предсказать следующее даже зная все предыдущие. Проблема: как получить на компьютере? Возможные решения: использовать внешний источник шумовых помех с помощью математических преобразований

3 Псевдослучайные числа Псевдослучайные числа – это такая последовательность чисел, которая обладает свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле. Примеры: 1. Случайные целые числа [0,m) (линейный конгруэнтный метод) 2. Случайные вещественные числа [0,1] Литература: Д. Кнут, Искусство программирования для ЭВМ, т.2. дробная часть числа a, c, m - целые числа простое число например, k = 5

4 Распределение случайных чисел Модель: снежинки падают на отрезок [a,b] a b a b распределение равномерное неравномерное Сколько может быть разных распределений? ?

5 Распределение случайных чисел Особенности: распределение – это характеристика всей последовательности, а не одного числа равномерное распределение одно, компьютерные датчики (псевдо)случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного a b a b равномерное распределение неравномерное распределение

6 Генератор случайных чисел в Паскале Целые числа в интервале [0,N]: var x: integer;... x := random ( 100 ); { интервал [0,99] } Вещественные числа в интервале [0,1] var x: real;... x := random; { интервал [0,1] }

7 Случайные числа Задача: заполнить прямоугольник 400 на 300 пикселей равномерно точками случайного цвета Как получить случайные координаты точки? x := random ( 400 ); y := random ( 300 ); Как добиться равномерности? обеспечивается автоматически при использовании функции random Как получить случайный цвет? Pen (1, random(256), random(256), random(256)); Point ( x, y );

8 Программа program qq; var x, y, k, code, i: integer; stop: boolean; begin stop := False; repeat x := random(400); y := random(300); Pen(1, random(256), random(256), random(256)); Point(x, y ); if IsEvent then begin Event(k, code, i); if (k = 1) and (code = 27) then stop := True; end; until stop; end. program qq; var x, y, k, code, i: integer; stop: boolean; begin stop := False; repeat x := random(400); y := random(300); Pen(1, random(256), random(256), random(256)); Point(x, y ); if IsEvent then begin Event(k, code, i); if (k = 1) and (code = 27) then stop := True; end; until stop; end. случайные координаты случайный цвет выход по клавише Esc

9 «4»: Ввести с клавиатуры координаты углов прямоугольника и заполнить его точками случайного цвета. «5»: Заполнить треугольник точками случайного цвета (равномерно или неравномерно). Подсказка: возьмите равнобедренный треугольник с углом 45 о. Задания (100,100) (300,200)