We randomly distribute n points on the circumference of a circle. What is the probability that they will all fall in a common semi-circle?

我们先用程序模拟一下这个过程,看看结果会是什么?

算法思想:我们先定义一个点的最大值,然后随机生成N个点,之后对这N个点进行排序,定义两点之间的最大距离为max_distance,把它的初始值设置为最小值点+最大值-最大值点,然后遍历所有点,求的相邻两点之间的最大值,如果max_distance大于半圆周长,说明这些点在同一半圆内。

代码清单:

import java.util.Arrays;
import java.util.Random;public class Npoints {/*** @param args*/public static void main(String[] args) {int m = 10000;int count;Npoints robot = new Npoints();for(int n = 1; n <= 8; n++){//一共测试n个点count = 0;for(int i = 0; i < m; i++){//每个点做m次测试if(robot.judge(n) == true){count++;}}System.out.println("n=" + n + "时,在同一半圆的概率为:" + count*1.0/m);}}private boolean judge(int n) {int points = 10000;//点的最大值int half = points >> 1;Random r = new Random();int[] array = new int[n+1];for(int i = 1; i <= n; i++)array[i] = r.nextInt(points) + 1;Arrays.sort(array);int max_distance = array[1] + points - array[n];for(int i = 1; i < n; i++){if(array[i+1] - array[i] > max_distance)max_distance = array[i+1] - array[i];}return max_distance >= half;}}

输出:

n=1时,在同一半圆的概率为:1.0
n=2时,在同一半圆的概率为:1.0
n=3时,在同一半圆的概率为:0.7517
n=4时,在同一半圆的概率为:0.4955
n=5时,在同一半圆的概率为:0.3131
n=6时,在同一半圆的概率为:0.1919
n=7时,在同一半圆的概率为:0.1095
n=8时,在同一半圆的概率为:0.0601

通过上面的模拟结果,可以看出随着n的增大,概率呈指数递减,并且通过P(1)=P(2)=1,猜测出它的结果可能为

n / 2^(n-1),通过多次验证,验证了这个结果的正确性。之后我花了一下午的时间试图对这个问题进行数学证明,不过很遗憾,几次尝试都是错误的解释或证明。

最后查到了原题作者对此问题的数学证明,见识下作者强悍的数学功力。

在求解的过程中,我还发现了一个有趣的现象:对n个点排序后,如果认为最大值点-最小值点 < 半圆周长 的话,那么它的结果将是第n+1个点的概率。

==================================================================================================

  作者:nash_  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/nash_/article/details/8547278

===================================================================================================

随机在圆上生成n个点,这n个点在同一半圆的概率是多少?相关推荐

  1. python随机画圆_python生成随机图形验证码详解

    #导入random模块 import random #导入Image,ImageDraw,ImageFont模块 from PIL import Image,ImageDraw,ImageFont # ...

  2. 四只鸭子在一个水池中,分别随机出现在圆圈中任意一点,四只鸭子出现在同一个半圆的概率是多少?

    上个月在网上看到一道数学题,于是写了个算法进行计算,别人和我说这叫蒙特卡罗. 题目如下: 我写的代码如下: package DuckCircle;import java.util.Random;pub ...

  3. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  4. python怎么计算圆_python根据圆的参数方程求圆上任意一点的坐标

    from math import cos, sin,pi x0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angle * pi / 180) y1 = y0 + ...

  5. 圆上任意四点在同一个半圆上的概率

    起因是看到了里神乐的微博(微博),一下激起了我的兴趣,但是作为一个已经大学毕业一年多的打工人,数学知识早还给老师了,于是就想用程序模拟点的情况,通过统计频率,来逼近概率. 代码放在这 import j ...

  6. vrf名称_如何使用VRF(可验证随机函数)在以太坊上生成随机数

    Chainlink 如何解决以太坊"随机数问题" 随机数和区块链一直很难达到"一致"(译者注:区块链要求确定性,而随机数正相反).到目前为止,区块链上还没有可验 ...

  7. c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...

    在过去的一周时间里一直在计算师兄交代的任务 ,啥都没学,就一直在干这活.其中呢,我想的一个算法中就用到了本文中的这个小知识(主要就是线性代数和高中的一些知识结合起来).师兄说做的这个东西的内容要保密, ...

  8. 小程序转盘抽奖,已知圆心、半径、角度求圆上点的坐标

    因公司的需求,要在小程序语音房内部迭代一个真心话大冒险的功能,也等同于幸运转盘: 业务场景: 发送一个socket,拿到响应的结果,根据返回的数值开始启动幸运转盘,由于转盘上的人数不是固定的,所以要根 ...

  9. 【Unity】U3D TD游戏制作实例(四)建造防御塔:防御塔生成器、一个int代表多选框,圆上任意点位的坐标计算、制作防御塔预制件

    文章目录 本章内容介绍 制作生成器 生成器Hierarchy 高亮显示生成器 制作箭塔菜单 将创建菜单对齐到选中的生成器 动态生成按钮 动态计算按钮坐标 制作预制件 最终运行效果 本章内容介绍 由于目 ...

最新文章

  1. OpenSSL 转换证书格式
  2. web相关概念回顾|| 部署项目的方式
  3. 妙啊,这条命令可以查出哪些端口被防火墙阻止了
  4. JAVA标识符中含小数点可以吗_数值类型小数点后是否可以接零问题
  5. 收集Redis16个最常见面试问题
  6. 笔记本系统恢复连载之十:系统恢复并不难
  7. 在中标麒麟上基于源码安装第二个gcc编译器
  8. CAESAR II 5.00 USB加密锁运行稳定完整功能版/
  9. 数据仓库的分层,你知道吗?
  10. 小米笔记本Air 13.3 指纹版安装黑苹果 macOS High Sierra 10.13 教程
  11. php龙之战争游戏搭建教程,龙之战争1.02正式版下载
  12. W806开发板环境搭建
  13. starting Intent from ProcessRecord with revoked permission android.permission.CALL_PHONE 的错误原因
  14. 如何评价 APICloud ?
  15. 输入一个数字n,输出一个n层的特定三角形
  16. map函数、filer函数、reduce函数的用法和区别
  17. 头的各个部位示意图_超全!27张高清解剖图带你认识头、面、颈部骨骼及肌肉名称!珍藏!...
  18. 纵观计算机简史ppt,纵观计算机简史初中信息技术新课本中国地图出社课件.ppt...
  19. Web前端开发技术:Vue开发基础(1)
  20. VS模板 孤狼优化版v1.0

热门文章

  1. Ubutun下搭建MySQL用户验证的WebDav服务器
  2. 最新英国优秀大学排名
  3. 暴ol登录001服务器无响应,925科技幻姬传说单机服务端(更新部分GM命令)
  4. xpath定位标签、xpath选择范围,position
  5. 如何入行软件测试的?
  6. 学习从来都是孰能生巧的过程
  7. 文盘Rust——领域交互模式如何实现
  8. PIL和opencv读图片尺寸不同
  9. 瓶盖与瓶子的人生启发
  10. 20221129今天的世界发生了什么