国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python隨機(jī)生成均勻分布在單位圓內(nèi)的點(diǎn)代碼示例

2020-02-16 10:41:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Python有一隨機(jī)函數(shù)可以產(chǎn)生[0,1)區(qū)間內(nèi)的隨機(jī)數(shù),但是如果我們想生成隨機(jī)分布在單位圓上的,那么我們可以首先生成隨機(jī)分布在單位圓邊上的點(diǎn),然后隨機(jī)調(diào)整每個(gè)點(diǎn)距離原點(diǎn)的距離,但是我們發(fā)現(xiàn)這個(gè)距離不是均勻分布于[0,1]的,而是與扇形的面積相關(guān)的

我們使用另外的隨機(jī)函數(shù)生成從[0,1)的隨機(jī)數(shù)r,我們發(fā)現(xiàn)r<s0的概率為s0,顯而易見(jiàn),如果r為0,那么對(duì)應(yīng)的距離應(yīng)該為0,如果是1,對(duì)應(yīng)的距離自然也應(yīng)該是1,假設(shè)我們產(chǎn)生了m個(gè)隨機(jī)數(shù),那么小于s0的隨機(jī)數(shù)應(yīng)該為s0*m左右,而且這些應(yīng)該對(duì)應(yīng)于扇形面積的s0倍處即圖2的小扇形區(qū)域,落在這一區(qū)域的點(diǎn)應(yīng)該為s0*m,此時(shí)扇形邊長(zhǎng)為s0^0.5,因此s0對(duì)應(yīng)的距離應(yīng)該為s0^0.5,因此我們得到的映射函數(shù)為y=x^0.5(圖1)

                                                                                                         圖1

 

                                                                             圖2

因此我們對(duì)于每個(gè)頂點(diǎn)的邊長(zhǎng)便是產(chǎn)生隨機(jī)數(shù)的算術(shù)平方根的大小

附代碼如下:

# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltif __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()

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安阳市| 贵阳市| 安溪县| 衡山县| 西青区| 彰武县| 新泰市| 哈巴河县| 濉溪县| 合川市| 阳谷县| 积石山| 石嘴山市| 高碑店市| 房产| 永川市| 清丰县| 大同县| 英德市| 杨浦区| 宁波市| 专栏| 鄂尔多斯市| 腾冲县| 江陵县| 剑阁县| 吐鲁番市| 鄄城县| 闸北区| 侯马市| 龙南县| 泰和县| 东丰县| 乌海市| 谢通门县| 宁远县| 洪湖市| 英德市| 泉州市| 双城市| 徐水县|