拒绝采样方法参考https://blog.csdn.net/jteng/article/details/54344766 https://www.cnblogs.com/xbinworld/p/4266146.html
class Solution {
public:
Solution(double radius, double x_center, double y_center) {
r=radius;
x0=x_center;
y0=y_center;
}
vector<double> randPoint() {//找到参考分布,就是正方形均匀分布
while(true){
double x=(double)rand()/RAND_MAX*2*r-r;
double y=(double)rand()/RAND_MAX*2*r-r;
double dis=x*x+y*y;
if(dis<=r*r)
return {x+x0,y+y0};
}
return {};
}
private:
double r;
double x0;
double y0;
};