БЕСПЛАТНАЯ ПОДГОТОВКА К ЕГЭ ПО ПРОФИЛЬНОЙ МАТЕМАТИКЕ
Подготовься к ЕГЭ-2026 по профильной математике самостоятельно с помощью сервиса "1С:Репетитор"!
Понятная теория и эффективные тренажеры с объяснением! Вы успеете подготовиться к экзамену! Начните занятия прямо сейчас!
design_arrow

Случайный массив

Прежде, чем говорить о заполнении массива случайными числами, стоит вспомнить о том, что такое массив вообще. Это структура данных, представляющая собой упорядоченную коллекцию элементов одного типа, доступных по индексам. В языке Pascal массивы объявляются с использованием ключевого слова array. Например:​

var

  A: array[1..10] of integer;

Здесь A — массив из 10 целых чисел с индексами от 1 до 10. Массивы бывают одномерными (линейными) и многомерными (например, двумерные таблицы).​

Об этом мы говорили уже неоднократно, но в случае с информатикой повторение – мать учения. 

Работа с массивами включает:​ 

  1. Объявление: указание имени, диапазона индексов и типа элементов.​ 

  2. Заполнение: присваивание значений элементам массива.​

  3. Обработка: выполнение операций над элементами массива.​

  4. Вывод: отображение результатов на экране. 

В заданиях ЕГЭ за 2025 год нередко встречаются такие задания, где необходимо не просто перебрать элементы, но и провести анализ, а также преобразовать массив поэлементно.

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

Различные варианты заполнения массива случайными числами

Моделирование часто требует высокой скорости при проведении экспериментов. Оттого заполнять массивы вручную неудобно. Поэтому генераторы случайных чисел чаще всего находят применение именно в данной области.

Но надо понимать, что есть случайность истинная, но в программных модулях чаще всего используется псевдослучайность. 

Действительную случайность дают процессы, более известные физикам, чем кому-либо еще. Шумы или распад радиоактивных элементов (количество или факт вылета электрона за единицу времени) дают истинную случайность.

Имеются также генераторы случайных чисел, они же ГСЧ, которые относятся к системам с непредсказуемым результатом. Хорошим примером можно назвать извлечение шара из лототрона или бочонка с номером из мешка не глядя.

Псевдослучайные числа генерируются алгоритмически и определяются начальным значением, называемым семенем (seed). Хотя они кажутся случайными, при одинаковом семени последовательность чисел будет идентичной. Это свойство полезно для тестирования и отладки программ.​

Примеры алгоритмов генерации псевдослучайных чисел:​

  • Линейный конгруэнтный генератор (LCG): использует формулу X_{n+1} = (a * X_n + В) mod m, где a, c и m — параметры генератора.​

  • Генератор Лемера: частный случай LCG с c = 0, где X_{n+1} = (a * X_n) mod m.​ 

  • RANDU: исторически использовавшийся генератор, известный своими недостатками, среди которых можно назвать наиболее известными короткий период и корреляция между числами.​ 

Важно выбирать качественные генераторы, особенно при выполнении заданий ЕГЭ, чтобы избежать предсказуемости и ошибок в моделировании на больших массивах.

Заполнение массива случайными числами

В языке Pascal для генерации псевдослучайных чисел используется процедура randomize для инициализации генератора и функция random для получения чисел.​

Пример заполнения массива случайными числами от 1 до 100:

program RandomArray;

const

  N = 10;

var

  A: array[1..N] of integer;

  i: integer;

begin

  randomize;

  for i := 1 to N do

    A[i] := random(100) + 1;

end.

Здесь random(100) генерирует числа от 0 до 99, поэтому прибавляется 1 для получения диапазона от 1 до 100.​

Такой подход часто используется в заданиях ЕГЭ, где требуется создать массив с определёнными характеристиками.​

Перемешивание массива: алгоритм Фишера — Йетса

Для создания случайной перестановки элементов массива используется алгоритм Фишера — Йетса. Он обеспечивает наиболее равновероятное распределение всех возможных перестановок, поэтому как при редком, так и при частом использовании не возникает «перекоса» в ту или иную сторону.

Псевдокод алгоритма:

for i := N downto 2 do

begin

  j := random(i) + 1;

  swap(A[i], A[j]);

end;

Здесь swap — процедура обмена значениями элементов массива. Алгоритм эффективен и широко применяется при подготовке к ЕГЭ для задач, связанных с перестановками.​

Где теория находит применение в заданиях ЕГЭ

Понимание массивов и методов их заполнения случайными числами важно для успешного выполнения заданий ЕГЭ. Примеры таких заданий:​

  • Анализ массива: нахождение количества элементов, удовлетворяющих определённому условию.​

  • Поиск максимума/минимума: определение наибольшего или наименьшего значения в массиве.​ 

  • Сортировка: упорядочивание элементов массива по возрастанию или убыванию.​

  • Перестановки: создание случайных перестановок элементов массива.​

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

Вопрос 1.

Что такое массив в языке программирования?

А) Последовательность различных типов данных
Б) Упорядоченная коллекция однотипных элементов, доступных по индексу
В) Совокупность случайных чисел
Г) Набор команд в программе

Вопрос 2.

Какая функция используется в Pascal для генерации случайного целого числа?

А) randint
Б) randomize
В) random
Г) shuffle

Вопрос 3.

Что делает команда randomize в Pascal?

А) Инициализирует генератор случайных чисел новым значением
Б) Заполняет массив случайными числами
В) Перемешивает массив
Г) Сортирует массив случайным образом

Вопрос 4.

Какой диапазон чисел получится при вызове random(10)?

А) От 1 до 10
Б) От 1 до 9
В) От 0 до 10
Г) От 0 до 9

Вопрос 5.

Как называется алгоритм равномерного случайного перемешивания элементов массива?

А) Алгоритм Бойера-Мура
Б) Алгоритм Фишера — Йетса
В) Метод пузырьковой сортировки
Г) Метод Гаусса

Вопрос 6.

Что произойдёт, если вызвать random(100) без randomize?

А) Возникнет ошибка компиляции
Б) Числа будут генерироваться с равной вероятностью
В) Последовательность чисел будет одинаковой при каждом запуске программы
Г) Программа не будет компилироваться

Вопрос 7.

Какой тип генерации случайных чисел используется в программировании чаще всего?

А) Аппаратный
Б) Квантовый
В) Истинный
Г) Псевдослучайный