各位老铁们,大家好,今天由我来为大家分享Python版LeetCode题目解析:如何在圆内随机生成点(Generate Random Point in a Circle),以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
该题我们可以获得的信息是:圆心坐标(x,y),半径。因此,我们可以得到任意点的坐标范围:
x : [x-r, x+r]
y : [y-r, y+r] 用图形表示,我们可以得到一个正方形的范围,如下图所示:
正方形范围因此通过random.uniform 我们可以在正方形内(包括边上)生成随机点。但题目要求生成一个圆内的随机点,所以生成随机点后,可以根据该点到圆心的距离来判断该随机点是否在圆内。如果不在圈内,则丢弃结果并重新生成。
参考代码如下:
随机导入
类解决方案:
def __init__(self, radius: "浮动", x_center: "浮动", y_center: "浮动"):
self.radius=半径
self.x_center=x_center
self.y_center=y_center
self.x_max=x_center + 半径
self.y_max=y_center + 半径
self.x_min=x_center - 半径
self.y_min=y_center - 半径
def randPoint(self) -"List[float]":
而True:
res_x=random.uniform(self.x_min, self.x_max)
res_y=random.uniform(self.y_min, self.y_max)
dis=(res_x - self.x_center)**2 + (res_y - self.y_center)**2
如果dis=self.radius**2:
返回[res_x, res_y]源代码地址:
https://github.com/jediL/LeetCodeByPython
Python版LeetCode题目解析:如何在圆内随机生成点(Generate Random Point in a Circle)和的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
【Python版LeetCode题目解析:如何在圆内随机生成点(Generate Random Point in a Circle)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
LeetCode 的题真不错,感觉这题很有锻炼代码设计的意义。
有11位网友表示赞同!
最近也在准备 LeetCode 面试,这种题目算是基础题吧?
有8位网友表示赞同!
Python 写起来还是挺方便的,这个随机生成点的思路也很巧妙。
有10位网友表示赞同!
有没有什么比较高效的算法生成随机点呢?我之前写的代码好像有点慢
有18位网友表示赞同!
圆内随机点的生成问题还挺有意思的,感觉可以应用到一些图形学的场景中。
有8位网友表示赞同!
这个题目讲解详细吗?想学习一下Python的解题思路
有13位网友表示赞同!
这题在面试中经常出现吗?我应该重点练习哪些类型的问题呢?
有19位网友表示赞同!
看了这个标题,突然想到之前学过随机数生成器的相关知识
有5位网友表示赞同!
感觉像是一个概率问题吧,需要运用一些几何学的原理才能解决?
有15位网友表示赞同!
LeetCode 的题目涵盖面真是很广啊!从数据结构到算法,几乎什么都有。
有13位网友表示赞同!
想要提高编程能力的话,LeetCode 确实是个很好的平台
有9位网友表示赞同!
圆的半径怎么设定呢?这题需要考虑各种直径情况吗?
有14位网友表示赞同!
有没有什么图示可以帮助理解这个问题?我感觉有点抽象
有13位网友表示赞同!
不知道Python有哪些内置函数可以用来生成随机点
有18位网友表示赞同!
这题应该可以用循环来实现吧?或者有什么更巧妙的解法呢?
有7位网友表示赞同!
我觉得这个题目挺好的,可以锻炼一下我们的数学思维和算法能力
有18位网友表示赞同!
分享一下你的代码,让我看看你如何解决这个问题
有11位网友表示赞同!
学习 LeetCode 的思路也能应用到实际编程中吗?很有帮助?
有15位网友表示赞同!
希望我能通过LeetCode 突破自己目前的代码瓶颈
有12位网友表示赞同!
这题的解题难度属于中等难度吧?不太容易一下子想明白.
有12位网友表示赞同!