Справочник случайных чисел

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

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

Один из самых последних справочников случайных чисел издал Джордж Марсалья в 1995 году на компакт-диске. Для его генерации использовался белый шум диодной цепи, скомпонованный с обработанной рэп-музыкой. Это сочетание сам Джордж неполиткорректно назвал «чёрно-белым шумом».

Страницы 2–3 ГОСТ 11.003–73 с таблицами 1 и 2: коды по номерам строк (1–32) и колонкам (1–4, 5–8, ..., 29–32), например, строка 1, колонка 1–4: 45 16 (табл. 1), 91 26 (табл.
Разворот со случайными числами из ГОСТа 11.003—73 «Прикладная статистика. Равномерно распределённые случайные числа»

Например, в ГОСТе 1973 года дан ряд случайных чисел и описана методика их использования, а так же несколько примеров, где они могли бы пригодиться. Вот один из них:

Пример случайного отбора изделий в выборку при статистическом контро­ле качества продукции. Партия состоит из 90 изделий. Требуется случайным образом отобрать для контроля пять изделий.

Решение. Пронумеруем все изделия партии номерами от 1 до 90. Соста­вим достаточно короткий ряд случайных чисел в диапазоне от 1 до 100. Отбро­сим из этого ряда все числа, большие 90. Выберем из оставшихся первые пять различных чисел — это будут номера изделий для контроля.

6 комментариев

Библиотека itertools для PHP

В качестве развлечения написал тесты к своей старой библиотеке itertools для ПХП и выяснил, что в ней полным-полно ошибок. В итоге, переписал всё на класс, исправил ошибки, добавил функции, которые появились в оригинальной библиотеке за это время, обмазал всё типами, вставил тесты и поддержку «композера».

Пример использования теперь стал выглядеть вот так:

use Itertools\Itertools as it;

foreach (it::islice(it::cycle('ABC'), 10) as $element) {
    echo $element;
}

2 комментария