Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
T7.doc
Скачиваний:
3
Добавлен:
23.11.2019
Размер:
141.31 Кб
Скачать

Задание 7.6. Работа с генератором случайных чисел

Для расчётов, связанных с поиском и анализом статистических закономерностей, бывает необходимо с одинаковой вероятностью получать случайные числа на заданном интервале числовой оси. Это можно сделать с помощью генератора случайных чисел. Строго говоря, числа, вырабатываемые генератором случайных чисел, являются не случайными, а псевдослучайными, так как они повторяются при большом числе испытаний (n>65535). Однако для большинства практических приложений это не существенно.

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

Запуск в работу генератора случайных чисел осуществляется функцией RANDOM, которая имеет два режима работы.

а) Функция RANDOM без параметров вырабатывает вещес-

твенное случайное число на интервале (0,1). Получить случайное

число на произвольном отрезке (a,b) можно простым преобразова-

нием. Рассмотрим следующий фрагмент программы:

.............................

var a,b,c: real;

i,n: integer;

f: array [1..100] of real;

.............................

randomize;

for i:=1 to n do begin

c:=a+(b-a)*random;

f[i]:=c

end;

.............................

Здесь получены n случайных чисел, принадлежащих отрезку (а,в), и записаны в массив f.

б) Функция RANDOM с целым параметром N выдаёт целое случайное число на промежутке [0,N]. С помощью преобразования, аналогичного рассмотренному в предыдущем случае, целое случайное число можно задать на произвольном интервале [a, b]:

Рассмотрим пример программы для вычисления целых случайных чисел с использованием звукового сопровождения.

Program random_music; {случайная музыка}

uses CRT;

const a=200;

b=300; {Верхнюю и нижнюю границу частот a, b cледует подобрать так, чтобы не было скрежещущих звуков }

var ,k,i,n:integer;

z:array[1..100] of integer;

begin

writeln(‘Введём число точек n’);

readln(n);

randomize;

for i:=1 to n do begin

k:=a+random(b-a);

z[i]:=k;

Sound(k);

Delay(50000);

Nosound;

end;

.............................

В данном задании сформируем массив с помощью генератора случайных чисел.

1. Задать отрезок на числовой оси [-10,10] и длину массива – n точек.

2. Заполнить вещественный массив из n элементов случайными числами.

3. Вывести массив на экран в столбец с нумерацией.

4. Вычислить среднее значение элементов массива – М.

5. Рассчитать дисперсию D и среднеквадратичное отклонение – S.

Задание 7.7. Выбор данных из массива по условию и перенесение их в другой массив

1. Задать отрезок на числовой оси [a,b] и длину массива – n точек.

2. Заполнить массив из n элементов случайными числами.

3. Вывести массив на экран в столбец с нумерацией.

4. Переписать в другой массив:

а) чётные элементы массива;

б) нечётные---------------------;

в) положительные-------------;

г) отрицательные---------------;

д) элементы, большие среднего значения М;

е) элементы, номера которых являются степенями 2;

ж) каждый третий элемент;

з) каждый четвёртый элемент;

и) каждый пятый элемент;

к) элементы, номера которых являются степенями 3;

л) элементы, номера которых являются числами Фибоначчи;

7. Реализовать один из вариантов выбора по условию из п.6. Массив, полученный из исходного массива выбором элементов по какому-либо из условий п. 4, выдать на экран с нумерацией.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]