Python随机生成均匀分布在单位圆内的点代码示例

 更新时间:2017年11月13日 16:18:34   作者:有问必答不知道  
这篇文章主要介绍了Python随机生成均匀分布在单位圆内的点代码示例,具有一定参考价值,需要的朋友可以了解下。

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)

                                                                                                         图1

 

                                                                             图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()

                                                                               图3

总结

以上就是本文关于Python随机生成均匀分布在单位圆内的点代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python实现图片处理和特征提取详解python中实现k-means聚类算法详解Python内存管理方式和垃圾回收算法解析等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

相关文章

  • python实例化对象的具体方法

    python实例化对象的具体方法

    在本篇文章里小编给大家整理的是关于python实例化对象的具体方法,有兴趣的朋友们可以学习下。
    2020-06-06
  • Python边遍历边删除列表元素的几种方法

    Python边遍历边删除列表元素的几种方法

    在 Python 中,边遍历边删除列表元素通常是一个不推荐的操作,因为它会改变列表的大小,可能会导致一些意料之外的行为,例如,元素被删除后,列表的索引会发生变化,可能导致漏掉某些元素或者遍历到错误的位置,所以本文介绍了Python边遍历边删除列表元素的几种方法
    2024-12-12
  • Anaconda 离线安装 python 包的操作方法

    Anaconda 离线安装 python 包的操作方法

    今天小编就为大家分享一篇Anaconda 离线安装 python 包的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python 数字转化成列表详情

    Python 数字转化成列表详情

    这篇文章主要介绍了Python 数字转化成列表,主要以代码实现了将输入的数字转化成一个列表,输入数字中的每一位按照从左到右的顺序成为列表中的一项。,需要的朋友可以参考下
    2021-11-11
  • python基于windows平台锁定键盘输入的方法

    python基于windows平台锁定键盘输入的方法

    这篇文章主要介绍了python基于windows平台锁定键盘输入的方法,涉及Python中调用user32.dll中BlockInput方法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • pip更新问题的解决:'python -m pip install --upgrade pip' 报错问题(最新推荐)

    pip更新问题的解决:'python -m pip install -

    这篇文章主要介绍了pip更新问题的解决:'python -m pip install --upgrade pip' 报错问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python随机生成迷宫游戏的代码示例

    Python随机生成迷宫游戏的代码示例

    本文主要介绍了Python随机生成迷宫游戏的代码示例,Python可以通过生成二维数组模拟迷宫的结构,使用深度优先搜索和广度优先搜索等算法找到通路,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 对于Python装饰器使用的一些建议

    对于Python装饰器使用的一些建议

    这篇文章主要介绍了对于Python装饰器使用的一些建议,装饰器是Python学习进阶中的重要知识,需要的朋友可以参考下
    2015-06-06
  • Python yield 使用浅析

    Python yield 使用浅析

    这篇文章主要介绍了Python yield 使用浅析,本文给出了多个使用实例来分析yield的使用方法,需要的朋友可以参考下
    2015-05-05
  • Python中使用YAML文件进行配置文件管理

    Python中使用YAML文件进行配置文件管理

    配置文件管理已经成为了一个不可或缺的环节。它们包含了程序运行所需的各种参数,本文主要介绍了Python中使用YAML文件进行配置文件管理,感兴趣的可以了解一下
    2023-12-12

最新评论