2

可能的重复:
如何从 C++ 生成均匀分布在 0 和 1 之间的随机双精度数?

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

double num = rand() % 2*M_PI;

我该怎么做呢?

谢谢。

4

1 回答 1

4

生成一个介于 0 和 1 之间的随机数,然后将结果乘以2*M_PI

如果您在 0 和 1 之间有一个均匀分布,那么您也将在 0 和 之间有一个均匀分布2*M_PI,直到您使用的数值类型中可用的精度限制。

要在 0 和 1 之间生成随机统一双精度,请参阅@dasblinkenlight 在他的评论中建议的答案。

于 2013-02-05T17:43:06.813 回答