Верхняя граница для пользовательского rand48 - PullRequest
1 голос
/ 03 апреля 2010

Я использую пользовательскую функцию случайных чисел rand48 в CUDA. Функция не позволяет устанавливать верхнюю границу, но я требую, чтобы выходные данные были между 0 и 1.

Я полагаю, что я что-то упустил, но как бы я преобразовал вывод в 0 - 1, длина числа может измениться, например, 697135872 необходимо будет разделить на 100000000, а 29186668 - 100000000.

Спасибо всем

1 Ответ

0 голосов
/ 03 апреля 2010

Если ваш PRNG ведет себя как rand, то он генерирует числа от 0 до RAND_MAX с равномерной вероятностью. Вам просто нужно умножить на 1.f/RAND_MAX.

Если вы поделите на разные числа в разных случаях, вы получите неравномерное распределение.

...