如何生成0到2pi之间的随机数?

时间:2013-02-05 17:38:05

标签: c

  

可能重复:
  How do you generate a random double uniformly distributed between 0 and 1 from C++?

我正在试图弄清楚如何在0和pi之间生成一个随机数,但是通常的方法不起作用,因为mod会进行整数除法:

double num = rand() % 2*M_PI;

我将如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:4)

生成0到1之间的随机数,然后将结果乘以2*M_PI

如果在0和1之间有均匀分布,则在0和2*M_PI之间也会有均匀分布,达到您正在使用的数字类型的可用精度限制。

要生成0到1之间的随机统一双精度数,请在评论中查看@dasblinkenlight的answer suggested