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列表操作使用示例分享
Feb 21 Python
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
python实现学生信息管理系统
Apr 05 Python
python之pandas用法大全
Mar 13 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
对pandas中Series的map函数详解
Jul 25 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
Python持续监听文件变化代码实例
Jul 22 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 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
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
python动态监控日志内容的示例
2014/02/16 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Django中间件实现拦截器的方法
2018/06/01 Python
Python实现的读写json文件功能示例
2018/06/05 Python
Python爬取成语接龙类网站
2018/10/19 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python判断自身是否正在运行的方法
2019/08/08 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
安全宣传标语口号
2014/06/06 职场文书
担保书范本
2015/01/20 职场文书