Генерация двух случайных чисел для выборки RANSAC - PullRequest
0 голосов
/ 17 ноября 2010

Я посмотрел, как генерировать две случайные целочисленные переменные с помощью rand ()% n (где n - общее количество выборок), но, похоже, они обычно имеют смещение.

Есть ли лучший (и желательно более простой) способ генерирования случайных чисел от 0 до n (количество выборок)?

n читается из файла, который содержит список точек данных. Цель состоит в том, чтобы провести согласование данных с помощью RANSAC.

1 Ответ

1 голос
/ 17 ноября 2010

rand() % n использует только младшие биты случайного числа, когда n значительно меньше, чем RAND_MAX.Лучше использовать все биты, например, путем деления на RAND_MAX, чтобы получить число (с плавающей запятой) между 0,0 и 1,0, а затем умножить на n и преобразовать обратно в целое число.* Также возможно, что реализация rand() просто недостаточно хороша для некоторых применений.В этом случае используйте другой генератор случайных чисел (например, Mersenne Twister).

...