我试图弄清楚如何在 0 和 pi 之间生成一个随机数,但通常的方法不起作用,因为 mod 进行整数除法:
double num = rand() % 2*M_PI;
我该怎么做呢?
谢谢。
我试图弄清楚如何在 0 和 pi 之间生成一个随机数,但通常的方法不起作用,因为 mod 进行整数除法:
double num = rand() % 2*M_PI;
我该怎么做呢?
谢谢。
生成一个介于 0 和 1 之间的随机数,然后将结果乘以2*M_PI
。
如果您在 0 和 1 之间有一个均匀分布,那么您也将在 0 和 之间有一个均匀分布2*M_PI
,直到您使用的数值类型中可用的精度限制。
要在 0 和 1 之间生成随机统一双精度,请参阅@dasblinkenlight 在他的评论中建议的答案。