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实现列表转换成字典数据结构的方法
Mar 11 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
python中有关时间日期格式转换问题
Dec 25 Python
通过Python实现一个简单的html页面
May 16 Python
Python自动化操作实现图例绘制
Jul 09 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
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
简单学习Python time模块
2016/04/29 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python自动化报告的输出用例详解
2018/05/30 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python对html过滤处理的方法
2018/10/21 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Django框架实现的分页demo示例
2019/05/25 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
SQL Server面试题
2016/10/17 面试题
学校安全责任书范本
2014/07/23 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Node与Python 双向通信的实现代码
2021/07/16 Javascript