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 相关文章推荐
python3实现全角和半角字符转换的方法示例
Sep 21 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
keras 如何保存最佳的训练模型
May 25 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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
function.inc.php超越php
2006/12/09 PHP
php 远程关机操作的代码
2008/12/05 PHP
写出高质量的PHP程序
2012/02/04 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
关于Python数据结构中字典的心得
2017/12/04 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
快速了解Python开发环境Spyder
2020/06/29 Python
django使用channels实现通信的示例
2020/10/19 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
大学竞选班干部演讲稿
2014/08/21 职场文书
农村文化建设标语
2014/10/07 职场文书