Методы получения случайных комбинаторных объектов
Описание алгоритма
| Задача: |
| Необходимо сгенерировать случайный комбинаторный объект размера с равномерным распределением вероятности, если в наличии есть функция для генерации случайного числа в заданном интервале. |
Пусть - множество различных элементов, которые могут находиться в данном комбинаторном объекте.
Будем получать элементы по порядку: сначала определим, какой элемент будет стоять на первом месте, потом на втором и так далее. Считаем, что мы построили префикс длинны :. Будем выбирать элемент из множества всех возможных так, чтобы вероятность выбора элемнта , была пропорциональна числу комбинторных обьектов размера с префиксом . Для этого разобъем отрезок чисел . где - число различных комбинаторных объектов с текущим префиксом, на диапазонов так, чтобы размер диапазаоны был равен числу объектов с префиксом .