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 相关文章推荐
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
matplotlib绘制动画代码示例
Jan 02 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
python 字段拆分详解
Dec 17 Python
pytorch 自定义参数不更新方式
Jan 06 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
Python logging模块写入中文出现乱码
May 21 Python
python 实现端口扫描工具
Dec 18 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+DBM的同学录程序(5)
2006/10/09 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
Python魔法方法详解
2019/02/13 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
python实现mean-shift聚类算法
2020/06/10 Python
JAVA程序员面试题
2012/10/03 面试题
大二自我鉴定范文
2013/10/05 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
市场营销计划书范文
2015/01/16 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA