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 05 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
python把转列表为集合的方法
Jun 28 Python
Python整数对象实现原理详解
Jul 01 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Python Serial串口基本操作(收发数据)
Nov 06 Python
python unichr函数知识点总结
Dec 16 Python
python如何查找列表中元素的位置
May 30 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 callback函数使用方法和注意事项
2015/01/23 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
python创建关联数组(字典)的方法
2015/05/04 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
zookeeper python接口实例详解
2018/01/18 Python
Python登录注册验证功能实现
2018/06/18 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
优秀团员个人事迹材料
2014/01/29 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
网站出售协议书范文
2014/10/10 职场文书
捐资助学感谢信
2015/01/21 职场文书
老公婚前保证书
2015/02/28 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
心灵点滴观后感
2015/06/02 职场文书
征求意见函
2015/06/05 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
试了下Golang实现try catch的方法
2021/07/01 Golang
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
你需要掌握的20个Python常用技巧
2022/02/28 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫