Программирование на языке Паскаль (продолжение). Вычисления (случайные числа)

Слайд 2

Случайные числа

Случайно…
встретить друга на улице
разбить тарелку
найти 10 рублей
выиграть в лотерею

Случайный выбор:
жеребьевка на

Случайные числа Случайно… встретить друга на улице разбить тарелку найти 10 рублей
соревнованиях
выигравшие номера в лотерее

Как получить случайность?

Слайд 3

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

Электронный генератор

нужно специальное устройство
нельзя воспроизвести результаты

318458191041

564321

209938992481

458191

938992

малый период (последовательность повторяется

Случайные числа на компьютере Электронный генератор нужно специальное устройство нельзя воспроизвести результаты
через 106 чисел)

Метод середины квадрата (Дж. фон Нейман)

в квадрате

Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.

зерно

Слайд 4

Линейный конгруэнтный генератор

X := (a*X+b) mod c | интервал от 0 до

Линейный конгруэнтный генератор X := (a*X+b) mod c | интервал от 0
c-1

X := (X+3) mod 10 | интервал от 0 до 9

X := 0

зерно

→ 3

→ 6

→ 9

→ 2

→ 5

→ 8

→ 0

зацикливание

8

→ 1

→ 4

→ 7

Компилятор GCC:
a = 1103515245
b = 12345
c = 231

Слайд 5

Генератор случайных чисел

Вещественные числа в интервале [0,1):

var X, Y: double;
...
X:= random;

Генератор случайных чисел Вещественные числа в интервале [0,1): var X, Y: double;
{ интервал от 0 до 1 (<1) }
Y:= random; { это уже другое число! }

Целые числа в интервале [0,10):

var K, L: integer;
...
K:= random( 10 ) { интервал от 0 до 9 (<10) }
L:= random( 10 ) { это уже другое число! }

англ. random – случайный

Слайд 6

Другой отрезок

Вещественные числа [a, b):

var X, a, b: double;
...
X:= random*10; {

Другой отрезок Вещественные числа [a, b): var X, a, b: double; ...
расширение: [0,10) }
X:= random*10 + 5;
{ расширение и сдвиг: [5,15) }
X:= random*(b-a) + a;
{ расширение и сдвиг: [a,b) }

var K, a, b: integer;
...
K:= random(10) + 5;
X:= random(b-a+1) + a;

Целые числа [a, b]:

{ [5,14] }
{ [a,b] }

Слайд 7

Задачи

«A»: Ввести с клавиатуры три целых числа, найти их сумму, произведение и

Задачи «A»: Ввести с клавиатуры три целых числа, найти их сумму, произведение
среднее арифметическое.
Пример:
Введите три целых числа:
5 7 8
5+7+8=20
5*7*8=280
(5+7+8)/3=6.667

«B»: Ввести с клавиатуры координаты двух точек (A и B) на плоскости (вещественные числа). Вычислить длину отрезка AB.
Пример:
Введите координаты точки A:
5.5 3.5
Введите координаты точки B:
1.5 2
Длина отрезка AB = 4.272

Имя файла: Программирование-на-языке-Паскаль-(продолжение).-Вычисления-(случайные-числа).pptx
Количество просмотров: 27
Количество скачиваний: 0