P
pro·school.ru
Каталог школ

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

💻 Информатика · 9 класс

Что такое заполнение массива случайными числами

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

Датчик случайных чисел (генератор) возвращает число из заданного диапазона. В школьных языках есть готовая функция, например random(N) возвращает целое от 0 до N-1. На самом деле эти числа псевдослучайные: они вычисляются по формуле, но выглядят как случайные.

Как организовать заполнение

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

Правило: чтобы получить случайное целое в диапазоне от a до b включительно, используют выражение a + random(b - a + 1). Здесь b - a + 1 — количество целых чисел в отрезке.

Пример на школьном алгоритмическом языке

Заполним массив из десяти элементов числами от 1 до 100 и сразу найдём их сумму:

нач цел A[1:10], i, S S := 0 нц для i от 1 до 10 A[i] := 1 + random(100) S := S + A[i] кц вывод S кон

Диапазоны случайных чисел

Нужный диапазонВыражениеПример значения
от 0 до 9random(10)7
от 1 до 61 + random(6)4
от 10 до 2010 + random(11)15
от -5 до 5-5 + random(11)-2

Зачем это нужно

Случайные данные позволяют проверить программу на разных наборах, не подбирая числа вручную. Если алгоритм работает правильно на сотнях случайных массивов, доверие к нему растёт. Особенно полезно так искать редкие ошибки, которые проявляются лишь на необычных входных данных.

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

Кроме целых чисел датчик умеет выдавать и вещественные значения из заданного отрезка. Их применяют, например, при моделировании физических процессов, где величины меняются плавно, а не скачками.

Частые ошибки: путают границы диапазона и получают значения вне нужного интервала; забывают, что random(N) не выдаёт само число N; заполняют массив, но потом обращаются к несуществующему индексу за его пределами.

Кратко о главном

  • Случайное заполнение готовит данные для тестирования алгоритмов.
  • Выполняется в цикле по всем индексам массива.
  • Диапазон от a до b задаёт выражение a + random(b - a + 1).
  • Функция random(N) даёт целое от 0 до N-1.
  • Фиксированное зерно делает последовательность повторяемой.