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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
Python实现ping指定IP的示例
Jun 04 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Django 静态文件配置过程详解
Jul 23 Python
使用python实现对元素的长截图功能
Nov 14 Python
python 经典数字滤波实例
Dec 16 Python
Python程序慢的重要原因
Sep 04 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
python excel和yaml文件的读取封装
Jan 12 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
Python获取央视节目单的实现代码
2015/07/25 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
2020/06/24 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
工作违纪检讨书
2014/02/17 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL