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內存管理方式和垃圾回收算法解析等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!
總結
以上是生活随笔為你收集整理的python求扇形面积_Python随机生成均匀分布在单位圆内的点代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BIOS 怎么恢复出厂设置 BIOS如何
- 下一篇: xp下怎么设置黑屏怎么回事啊 XP系统黑