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之模拟鼠标键盘动作具体实现
Dec 30 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
django之session与分页(实例讲解)
Nov 13 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python实现微信自动回复功能
Apr 11 Python
pandas.cut具体使用总结
Jun 24 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python如何删除文件、目录
Jun 23 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
Python实现简单的猜单词小游戏
Oct 28 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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文件中是否含有bom的函数
2012/05/31 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
juqery 学习之四 筛选查找
2010/11/30 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python max内置函数详细介绍
2016/11/17 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
空指针到底是什么
2012/08/07 面试题
MIS软件工程师的面试题
2016/04/22 面试题
大学生就业自荐信
2013/10/26 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
公司开除员工通知
2015/04/22 职场文书
2016年感恩节寄语
2015/12/07 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
Java异常处理try catch的基本用法
2021/12/06 Java/Android
一文简单了解MySQL前缀索引
2022/04/03 MySQL