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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
python让列表倒序输出的实例
Jun 25 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
python绘制动态曲线教程
Feb 24 Python
python对文件的操作方法汇总
Feb 28 Python
Python实现CAN报文转换工具教程
May 05 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 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的图形函数中显示汉字
2006/10/09 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
如何在PHP中生成随机数
2020/06/04 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python中关于for循环的碎碎念
2017/06/30 Python
详解爬虫被封的问题
2019/04/23 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
EJB实例的生命周期
2016/10/28 面试题
餐饮业创业计划书范文
2014/01/06 职场文书
基层干部十八大感言
2014/01/19 职场文书
学习十八大报告感言
2014/02/04 职场文书
个人承诺书格式
2014/06/03 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
正规欠条模板
2015/07/03 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技