拒绝采样,leetcode478在圆内随机生成点

it2025-05-07  6

拒绝采样方法参考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; };
最新回复(0)