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 相关文章推荐
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
python分割列表(list)的方法示例
May 07 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
wxPython的安装与使用教程
Aug 31 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
Python @property原理解析和用法实例
Feb 11 Python
python logging.info在终端没输出的解决
May 12 Python
基于python检查矩阵计算结果
May 21 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 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给每个段落添加空格的方法
2015/03/20 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
php中的依赖注入实例详解
2019/08/14 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
法国足球商店:Footcenter
2019/07/06 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
环境工程专业自荐信
2014/03/03 职场文书
七一晚会主持词
2015/06/29 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript