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-基础-入门 简介
Aug 09 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
python查看微信好友是否删除自己
Dec 19 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
解决Python使用列表副本的问题
Dec 19 Python
python画图常规设置方式
Mar 05 Python
python微信公众号开发简单流程实现
Mar 09 Python
Django serializer优化类视图的实现示例
Jul 16 Python
python xlwt模块的使用解析
Apr 13 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中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python多线程编程简单介绍
2015/04/13 Python
python Django模板的使用方法
2016/01/14 Python
解决yum对python依赖版本问题
2019/07/05 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python 连续不等式语法糖实例
2020/04/15 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
公司培训心得体会
2014/01/03 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android
Python中的 No Module named ***问题及解决
2022/07/23 Python