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文件比较示例分享
Jan 10 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Python实现定时任务
Feb 08 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
10个Python小技巧你值得拥有
Sep 29 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
pymongo中group by的操作方法教程
Mar 22 Python
Python面向对象之Web静态服务器
Sep 03 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
九步学会Python装饰器
2015/05/09 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python中Numpy mat的使用详解
2019/05/24 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Python常用数据分析模块原理解析
2020/07/20 Python
python中操作文件的模块的方法总结
2021/02/04 Python
美国家具网站:Cymax
2016/09/17 全球购物
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
楼面经理岗位职责范本
2014/02/18 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
分公司经理任命书
2014/06/05 职场文书
element tree树形组件回显数据问题解决
2022/08/14 Javascript