Ответ 1
Это проблематично, но, к сожалению, в стандарте подробно не указывается, какой алгоритм использовать при построении (многих) случайным образом распределенных чисел, и существует несколько допустимых альтернатив с различными преимуществами.
26.6.8.5 Normal distributions [rand.dist.norm] 26.6.8.5.1 Class template normal_distribution [rand.dist.norm.normal]
Распределение случайных чисел при нормальном распределении производит случайное числа x распределены в соответствии с функцией плотности вероятности
параметры μ и также известны как это среднее распределение и стандартное отклонение.
Наиболее распространенным алгоритмом генерации нормально распределенных чисел является Box-Muller, но даже с этим алгоритмом есть варианты и варианты.
Свобода даже явно упоминается в стандарте:
26.6.8 Random number distribution class templates [rand.dist] ...
3 Алгоритмы для получения каждого из указанных распределений реализации.
Варианты перехода для этого: повысить случайность
Кстати, как указывает @Hurkyl: кажется, что две реализации на самом деле одинаковы: например, box-muller генерирует пары значений, одно из которых возвращается, а другое кэшируется. Две реализации отличаются только тем, какое из значений возвращается.
Кроме того, механизмы случайных чисел полностью определены и будут давать одинаковую последовательность между реализациями, но необходимо соблюдать осторожность, поскольку различные распределения могут также потреблять разные объемы случайных данных для получения своих результатов, что приведет к потере этих механизмов. синхронизации