一道面试题

skillart 2019-05-28 01:46:24
吃鸡游戏,给定一个圆心坐标和半径,写一个函数返回园内一个随机点,且均匀分布。
...全文
174 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
茂大叔 2019-06-07
  • 打赏
  • 举报
回复
均匀分布就不是随机的,随机是没有规律的,而均匀分布要求已产生的样本要影响未产生的样本…也就是说连开十六把豹子,第十七把开豹子的几率不变,这是随机的,而均匀分布则是需要第十七把开豹子的几率极低,因为已经开了十六把了,不均匀!
ooolinux 2019-06-03
  • 打赏
  • 举报
回复
引用 22 楼 早打大打打核战争 的回复:
只要能理解就可以~~~
也是
  • 打赏
  • 举报
回复
只要能理解就可以~~~
ooolinux 2019-05-31
  • 打赏
  • 举报
回复
他那个系数开方修正以后,同样宽度外圆环上的点比内圆环上的点多,把圆环的宽度取极限压扁成圆周,外圆周比内圆周上的点多。这样理解对不对?
ooolinux 2019-05-31
  • 打赏
  • 举报
回复
引用 18 楼 早打大打打核战争 的回复:
[quote=引用 17 楼 ooolinux 的回复:]
[quote=引用 16 楼 早打大打打核战争 的回复:]
而他的计算方法,每一个同心圆周上点的个数都相同
===============================
他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法


他的本质还是角度随机,长度也随机,决定了同心圆周上有相同个数的点。我的理解,未必准确。[/quote]

他那个算法中r = sqrt(k)*R,相当于把随机长度放大,趋近于圆心和远离圆心的概率不一样,所以不一样多,越外圈越多
[/quote]

好像有道理,我重新理解一下~
ooolinux 2019-05-31
  • 打赏
  • 举报
回复
引用 17 楼 ooolinux 的回复:
[quote=引用 16 楼 早打大打打核战争 的回复:]
而他的计算方法,每一个同心圆周上点的个数都相同
===============================
他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法


他的本质还是角度随机,长度也随机,决定了同心圆周上有相同个数的点。我的理解,未必准确。[/quote]

我的理解,未必对的~
  • 打赏
  • 举报
回复
引用 17 楼 ooolinux 的回复:
[quote=引用 16 楼 早打大打打核战争 的回复:]
而他的计算方法,每一个同心圆周上点的个数都相同
===============================
他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法


他的本质还是角度随机,长度也随机,决定了同心圆周上有相同个数的点。我的理解,未必准确。[/quote]

他那个算法中r = sqrt(k)*R,相当于把随机长度放大,趋近于圆心和远离圆心的概率不一样,所以不一样多,越外圈越多
ooolinux 2019-05-31
  • 打赏
  • 举报
回复
引用 16 楼 早打大打打核战争 的回复:
而他的计算方法,每一个同心圆周上点的个数都相同
===============================
他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法


他的本质还是角度随机,长度也随机,决定了同心圆周上有相同个数的点。我的理解,未必准确。
  • 打赏
  • 举报
回复
而他的计算方法,每一个同心圆周上点的个数都相同
===============================
他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法
ooolinux 2019-05-31
  • 打赏
  • 举报
回复
引用 14 楼 早打大打打核战争 的回复:
这是按你的思路画的示意图:


每个圆周上的随机点都是均匀分布的(三个圆周长之比为1:2:3),但是在整个平面上点的分布并不均匀,比如中心的3x3方格内有9个点,而扩大一圈之后,5x5的方格内只有13个点,显然这样的分布还是趋向于圆心密集的,要保证平面内的点分布均匀,外圈圆周上的点密度应该高于内圈,而不是相同。


你这个图点的个数太少,不能说明问题。
我是想证明那篇博客的第一种方法得不到完全均匀的分布,如果只是角度随机,长度也随机,那么不论半径多少,每一个同心圆周上的点的个数是相同的,k开方后,把R/4圆周变换成了R/2圆周,因为R/2圆周和R圆周上的点的个数也是相同的,密度比就为两倍,分布不均匀。假设均匀分布的点是无限密集的,圆周上都布满了点,那么圆周长度为2倍,点的个数也应该为2倍。而他的计算方法,每一个同心圆周上点的个数都相同。
  • 打赏
  • 举报
回复
这是按你的思路画的示意图:


每个圆周上的随机点都是均匀分布的(三个圆周长之比为1:2:3),但是在整个平面上点的分布并不均匀,比如中心的3x3方格内有9个点,而扩大一圈之后,5x5的方格内只有13个点,显然这样的分布还是趋向于圆心密集的,要保证平面内的点分布均匀,外圈圆周上的点密度应该高于内圈,而不是相同。
  • 打赏
  • 举报
回复
我画个图...
ooolinux 2019-05-30
  • 打赏
  • 举报
回复
引用 11 楼 早打大打打核战争 的回复:
因为修正后每个生成的随机点都沿半径方向远离圆心一点,所以需要考虑一定面积内的随机点
你的想法的问题在于,均匀分布实际是在单位面积内的均匀,不是若干同心圆环上等弧长的均匀分布,那样从单位面积来看是不均匀的,你画一下就知道了


一时没有完全理解,我再想一下。
  • 打赏
  • 举报
回复
因为修正后每个生成的随机点都沿半径方向远离圆心一点,所以需要考虑一定面积内的随机点
你的想法的问题在于,均匀分布实际是在单位面积内的均匀,不是若干同心圆环上等弧长的均匀分布,那样从单位面积来看是不均匀的,你画一下就知道了
ooolinux 2019-05-30
  • 打赏
  • 举报
回复
引用 9 楼 早打大打打核战争 的回复:
是一个意思,他的算法取随机极坐标长度r = sqrt(k)*R,其中R是圆半径,k∈[0, 1]内分布的随机数

设圆半径为1,取随机极坐标长度ρ∈[0, 1],然后使用r=sqrt(ρ)是一回事


你的想法是把一个较小的圆面分散到一个较大的圆面,而他的计算是把一个较小的圆周变换到一个较大的圆周,感觉有点不同亚?
我6楼的那个想法错在哪里?
  • 打赏
  • 举报
回复
是一个意思,他的算法取随机极坐标长度r = sqrt(k)*R,其中R是圆半径,k∈[0, 1]内分布的随机数

设圆半径为1,取随机极坐标长度ρ∈[0, 1],然后使用r=sqrt(ρ)是一回事
ooolinux 2019-05-30
  • 打赏
  • 举报
回复
你这个想法我理解了,那篇博客那个计算是同一个意思吗?
  • 打赏
  • 举报
回复
我想了一下,这题其实可以简单证明:
假设圆半径为1,以圆内任一点ρ到圆心为半径做一小圆,如果随机点均匀分布的话,落在小圆内的点和整个圆内的点之比应该是ρ^2 : 1,而以极坐标角度长度随机生成的点,其分布则是ρ:1(考虑落在任一半径上的随机点即可),显然更密集(因为ρ<=1),所以,如果把落在以ρ^2为半径圆内的随机点分散在以ρ为半径的圆内,则刚好符合均匀分布的要求。
ooolinux 2019-05-29
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争 的回复:
如果 极坐标,角度随机值,长度随机值,结果肯定不是均匀分布的,而是趋向于圆心分布,因为极坐标转化为直角坐标
x=ρ*cosθ
y=p*sinθ
而cosθ/sinθ的值不是随着θ线性变化的。
他那个算法中r = sqrt(k)*R,k∈[0, 1],实际上是改变了ρ的分布,抵消了cosθ/sinθ的非线性分布,不过具体证明我也不了解,网上应该能找到相关资料


我有一个简单的想法,如果只是角度随机、长度也随机,R/4处的圆周和R处的圆周上分布的点是一样多的,但是密度比为4倍。
如果把k开方,变成R/2处的圆周和R处的圆周上分布的点是一样多的,但是密度比为2倍,仍然是不均匀的。
这个想法有没有问题?
  • 打赏
  • 举报
回复
如果 极坐标,角度随机值,长度随机值,结果肯定不是均匀分布的,而是趋向于圆心分布,因为极坐标转化为直角坐标
x=ρ*cosθ
y=p*sinθ
而cosθ/sinθ的值不是随着θ线性变化的。
他那个算法中r = sqrt(k)*R,k∈[0, 1],实际上是改变了ρ的分布,抵消了cosθ/sinθ的非线性分布,不过具体证明我也不了解,网上应该能找到相关资料
加载更多回复(4)
昨日,11.19,最新整理了,第61-80,现在公布上传。 另加上之前公布的第1-60 ,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试,都是这100 道系列的翻版, 此微软等公司数据结构+算法面试100 系列,是极具代表性的经典面试。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 [第21-40 答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 [前20 ]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 [前25 ] http://download.csdn.net/source/2796735 目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 [1-40 ] http://download.csdn.net/source/2778852 5.[第1 -60 汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何目或任何答案,有任何问,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何目或资源享有版权。转载以上公布的任何一, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
此为我个人搜集整理的, 精选微软等公司,有关 数据结构和算法的面试100[前40], 此绝对值得你下载收藏。 网友yui评论,真是够多的了,从此,不用再看其它面试.... 一句话,请享用。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 2.[第1-60汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100[前41-60]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100[1-40] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ //请继续期待,后续内容。 ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html -------July、2010年12月2日。
精选微软等数据结构+算法面试100答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少目的答案。 此份20的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 2.[第1-60汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100[前41-60]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100[1-40] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100首次完整亮相 ---100V0.1版最终完成 作者:July 2010年12月6日 微软等100系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40以来,直至此刻,整理这100,已有近2个月。 2个月,因为要整理这100,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100而被耽误的、其它的事了。 这微软等数据结构+算法面试100系列(目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、目、或答案,有任何问,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 剩下的第41-100答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧