Случайные или псевдослучайные числа

Часто при использовании ЭВМ для решения тех или иных задач требуется имитировать случайность событий. Такая потребность может возникнуть при создании моделей вероятностных систем (например, моделировании систем массового обслуживания) или при реализации игровых программ.

Случайность той или иной ситуации задается с помощью случайных чисел, которые выдают программно реализованные генераторы. Обычно генераторы представляют собой функции или процедуры на каком-нибудь языке программирования. Алгоритм работы генераторов может быть различным.

Приведем пример. Допустим, надо получить последовательность случайных чисел n1, n2, … ni на определенном отрезке, например от 0 до 1. Можно взять некоторый коэффициент K, имеющий достаточно большое значение, и первое любое число (n1), принадлежащее заданному отрезку. Последующее число (n2) можно получать, умножая K на n1 и отбрасывая целую часть; получить n3 можно умножив K на полученное ранее n2 и т.д. В результате из-за хаотичности результатов будет казаться, что полученные значения случайны. На самом деле это не так, т.к. получаемые значения всегда можно вычислить, зная n1 и K. Хотя реальные генераторы случайных чисел несколько сложнее, но все равно «случайность» получается предопределенной. Поэтому в программировании используется понятие псевдослучайных чисел, а не случайных.

Бывает, что генераторы случайных чисел программируют, используя изменяемый параметр какого-нибудь достаточно случайного физического процесса (например, изменения электрического напряжения). Величины замеров используются при формировании случайных чисел.

Но стоит задуматься, есть ли случайность вообще, в природе? Можно ли сказать, что при падении коробки с кубиками, последние оказываются на полу в случайных местах и со случайными гранями вверху? А что если был бы прибор, позволяющий фиксировать силу толчка коробки, исходное положение кубиков, расстояние до пола, другие параметры и далее вычислять результат падения? Может ли быть так, что случайность – это результат незнания? Вполне.