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 str与repr的区别
Mar 23 Python
在Python中处理时间之clock()方法的使用
May 22 Python
python中函数传参详解
Jul 03 Python
django中的HTML控件及参数传递方法
Mar 20 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
Django实现celery定时任务过程解析
Apr 21 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
python基础之//、/与%的区别详解
Jun 10 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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设计模式 php实现抽象工厂模式
2015/12/07 PHP
php实现微信扫码支付
2017/03/26 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
浅谈function(函数)中的动态参数
2017/04/30 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python中psutil的介绍与用法
2019/05/02 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
给女儿的表扬信
2014/01/18 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
主持词开场白
2014/03/17 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
道德与公民自我评价
2015/03/09 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Python中的 Set 与 dict
2022/03/13 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers