python求扇形面积_Python随机生成均匀分布在单位圆内的点代码示例

Python有一随机函数可以产生[0,1)区间内的随机数,但是如果我们想生成随机分布在单位圆上的,那么我们可以首先生成随机分布在单位圆边上的点,然后随机调整每个点距离原点的距离,但是我们发现这个距离不是均匀分布于[0,1]的,而是与扇形的面积相关的

我们使用另外的随机函数生成从[0,1)的随机数r,我们发现r

图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内存管理方式和垃圾回收算法解析等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值