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对两个有序列表进行合并和排序的例子
Jun 13 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
Python流程控制 while循环实现解析
Sep 02 Python
python生成特定分布数的实例
Dec 05 Python
Python3 A*寻路算法实现方式
Dec 24 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
python能否java成为主流语言吗
Jun 22 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
python查询MySQL将数据写入Excel
Oct 29 Python
python实现简易自习室座位预约系统
Jun 30 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
javascript读取xml
2006/11/04 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
python中的多重继承实例讲解
2014/09/28 Python
详解用python实现简单的遗传算法
2018/01/02 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
使用python计算三角形的斜边例子
2020/04/15 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
优秀共产党员先进事迹
2014/01/27 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
秸秆管理实施方案
2014/03/15 职场文书
森林防火标语
2014/06/23 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
高校教师个人总结
2015/02/10 职场文书
生日赠语
2015/06/23 职场文书