开发者

Generate Two Random Numbers for RANSAC sampling

开发者 https://www.devze.com 2023-01-25 06:36 出处:网络
I have looked at how to generate two random ints with rand()%n (wh开发者_Python百科ere n is the total number of samples) but they seem to usually have a bias.

I have looked at how to generate two random ints with rand()%n (wh开发者_Python百科ere n is the total number of samples) but they seem to usually have a bias.

Is there a better (and preferably simpler) way to generate random numbers between 0 and n (number of samples)?

n is read from a file which contains a list of data points. The goal is to do a line fitting through the data using RANSAC.


rand() % n uses only the low bits of the random number when n is significantly smaller than RAND_MAX. It's better to use all of the bits e.g. by dividing by RAND_MAX to get a (floating point) number between 0.0 and 1.0 and then multiplying by n and converting back to an integer.

It is also possible that the implementation of rand() is simply not good enough for some uses. In this case use another random number generator altogether (e.g. Mersenne Twister).

0

精彩评论

暂无评论...
验证码 换一张
取 消