Функция распределенияuniform_smallintмоделируетслучайное распределение. На каждом вызове он возвращает случайное целое значение, равномерно распределенное в наборе целых чисел {min, min+1, min+2, ..., max}. Предполагается, что желаемый диапазон (max-min+1) мал по сравнению с диапазоном основного источника случайных чисел и, таким образом, не предпринимает попыток ограничить ошибки квантования.
Пустьжелаемый диапазон целых чисел, и пустьбудет диапазоном основного источника случайных чисел. Тогда для равномерного распределения теоретическая вероятность для любого числа i в диапазонебудет. Аналогично, предположим равномерное распределение надля основного источника случайных чисел, т.е.Пустьобозначает случайное распределение, генерируемоеuniform_smallint. Тогда сумма над всем i визне должен превышать.
Параметр шаблона IntType должен обозначать целочисленный тип значения.
Note
Свойство выше является квадратной суммой относительных различий в вероятностях между желаемым однородным распределениеми генерируемым распределением. Свойство может быть выполнено с расчетомследующим образом: Пусть. Базовое распределение наскладывается в диапазон. Числа iномера базового распределения, остальные имеют только. Следовательно,для i< r ииначе. Замена этой формулы приведенной выше суммой приводит к желаемому результату.
Примечание: Верхняя граница. Что касается верхней границы для квадратной суммы относительной ошибки квантования, то представляется разумным выбратьтак, чтобыили обеспечить, чтобыделился на.
Возвращается истинно, если два распределения могут производить различные последовательности значений, заданных равными генераторами.
Статья Class template uniform_smallint раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.