Python随机生成均匀分布在单位圆内的点代码示例


Posted in Python onNovember 13, 2017

Python有一随机函数可以产生[0,1)区间内的随机数,但是如果我们想生成随机分布在单位圆上的,那么我们可以首先生成随机分布在单位圆边上的点,然后随机调整每个点距离原点的距离,但是我们发现这个距离不是均匀分布于[0,1]的,而是与扇形的面积相关的

我们使用另外的随机函数生成从[0,1)的随机数r,我们发现r<s0的概率为s0,显而易见,如果r为0,那么对应的距离应该为0,如果是1,对应的距离自然也应该是1,假设我们产生了m个随机数,那么小于s0的随机数应该为s0*m左右,而且这些应该对应于扇形面积的s0倍处即图2的小扇形区域,落在这一区域的点应该为s0*m,此时扇形边长为s0^0.5,因此s0对应的距离应该为s0^0.5,因此我们得到的映射函数为y=x^0.5(图1)

Python随机生成均匀分布在单位圆内的点代码示例

                                                                                                         图1

 Python随机生成均匀分布在单位圆内的点代码示例

                                                                             图2

因此我们对于每个顶点的边长便是产生随机数的算术平方根的大小

附代码如下:

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

if __name__=='__main__':
  samples_num = 800
  t = np.random.random(size=samples_num) * 2 * np.pi - np.pi
  x = np.cos(t)
  y = np.sin(t)
  i_set = np.arange(0,samples_num,1)
  for i in i_set:
    len = np.sqrt(np.random.random())
    x[i] = x[i] * len
    y[i] = y[i] * len
  plt.figure(figsize=(10,10.1),dpi=125)
  plt.plot(x,y,'ro')
  _t = np.arange(0,7,0.1)
  _x = np.cos(_t)
  _y = np.sin(_t)
  plt.plot(_x,_y,'g-')
  plt.xlim(-1.1,1.1)
  plt.ylim(-1.1,1.1)
  plt.xlabel('x')
  plt.ylabel('y')
  plt.title('Random Scatter')
  plt.grid(True)
  plt.savefig('imag.png')
  plt.show()

Python随机生成均匀分布在单位圆内的点代码示例

                                                                               图3

总结

以上就是本文关于Python随机生成均匀分布在单位圆内的点代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python实现图片处理和特征提取详解、python中实现k-means聚类算法详解、Python内存管理方式和垃圾回收算法解析等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
详解Python中time()方法的使用的教程
May 22 Python
wxPython使用系统剪切板的方法
Jun 16 Python
Python中的Descriptor描述符学习教程
Jun 02 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Python查找第n个子串的技巧分享
Jun 27 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
Python如何在DataFrame增加数值
Feb 14 Python
Python实现AI自动抠图实例解析
Mar 05 Python
Opencv求取连通区域重心实例
Jun 04 Python
python、java等哪一门编程语言适合人工智能?
Nov 13 #Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 #Python
python通过opencv实现批量剪切图片
Nov 13 #Python
flask + pymysql操作Mysql数据库的实例
Nov 13 #Python
django之session与分页(实例讲解)
Nov 13 #Python
python实现图片处理和特征提取详解
Nov 13 #Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 #Python
You might like
php 使用post,get的一种简洁方式
2010/04/25 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
让python在hadoop上跑起来
2016/01/27 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
python 读取二进制 显示图片案例
2020/04/24 Python
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
百日安全活动总结
2014/05/04 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers