478. 在圆内随机生成点

思路:在圆的外接正方形范围内取点,若在园外,则重新选取。
但是random.random()的范围是[0,1),所以这里稍微扩大了范围,才能取得边界值,因此可能慢些。

import random
class Solution:

    def __init__(self, radius: float, x_center: float, y_center: float):
        self.x = x_center
        self.y = y_center
        self.r = radius

    def randPoint(self) -> List[float]:
        px = (random.random()-0.49) * 2 * self.r 
        py = (random.random()-0.49) * 2 * self.r
        
        if pow(px, 2) + pow(py, 2) > pow(self.r, 2):
            return self.randPoint()
        return [px + self.x, py + self.y]

在这里插入图片描述

发布了115 篇原创文章 · 获赞 4 · 访问量 5012

猜你喜欢

转载自blog.csdn.net/qq_27921205/article/details/104339213