Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, сокращенный курс, 2 часа в неделю)



Урок 36
Простейшие программы. Вычисления. Стандартные функции
§54. Алгоритм и его свойства. §55. Простейшие программы. §56. Вычисления




Содержание урока

§54. Алгоритм и его свойства
§55. Простейшие программы
§56. Вычисления

Типы данных

Арифметические выражения и операции

Вещественные значения

Стандартные функции

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

Вопросы и задания

Задачи


§56. Вычисления


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


В некоторых задачах необходимо моделировать случайные события, например результат бросания игрального кубика (на нём может выпасть число от 1 до 6). Как сделать это на компьютере, который по определению «неслучаен», т. е. строго выполняет заданную ему программу?

Случайные числа — это последовательность чисел, в которой невозможно предсказать следующее число, даже зная все предыдущие. Чтобы получить истинно случайные числа, можно, например, бросать игральный кубик или измерять какой-то естественный шумовой сигнал (например, радиошум или электромагнитный сигнал, принятый из космоса). На основе этих данных составлялись и публиковались таблицы случайных чисел, которые использовали в разных областях науки.

Вернёмся к компьютерам. Ставить сложную аппаратуру для измерения естественных шумов или космического излучения на каждый компьютер очень дорого, и повторить эксперимент будет невозможно — завтра все значения будут уже другими. Существующие таблицы слишком малы, когда, скажем, нужно получать 100 случайных чисел каждую секунду. Для хранения больших таблиц требуется много памяти.

Чтобы выйти из положения, математики придумали алгоритмы получения псевдослучайных («как бы случайных») чисел. Для «постороннего» наблюдателя псевдослучайные числа практически неотличимы от случайных, но они вычисляются по некоторой математической формуле 1: зная первое число («зерно»), можно по формуле вычислить второе, затем третье и т. п.


1 В стандартные библиотеки языков программирования обычно входит линейный конгруэнтный генератор псевдослучайных целых чисел, использующий формулу Хk+1 = остаток от деления (аХk+с) на т, где Xk+1 и Хk — следующее и предыдущее псевдослучайные числа; а, с и m — целые числа, подобранные так, чтобы в получаемой цепочке чисел было как можно меньше закономерностей. Например, в трансляторе Borland Delphi использовались значения а =134775813, с = 1 и m = 232.



В школьном алгоритмическом языке существуют две функции для получения случайных (т. е. псевдослучайных) чисел в заданном интервале:

rand (а, b) — случайное вещественное число в полуинтервале [а, b);
irand (а,b) — случайное целое число на отрезке [а, b].

В Паскале есть аналогичные функции:

random — случайное вещественное число в полуинтервале [0,1) (вызов функции без параметров);
random (N) — случайное целое число на отрезке [0, № - 1);

Для того чтобы записать в целую переменную п случайное число в диапазоне от 1 до 6 (результат бросания кубика), можно использовать такие операторы:

n:=irand(l, 6)      n:=random(6)+1;


Вещественное случайное число в полуинтервале от 5 до 12 (не включая 12) получается так:

x:=rand(5, 12)      х:=7*random+5;



Следующая страница Вопросы и задания



Cкачать материалы урока







Наверх