python day 8 random庫 與 蒙特卡洛方法

Randompython

1、概述算法

1.Random庫是使用隨機數的python標準庫編程

2.生成的其實是僞隨機數。採用梅森旋轉算法生成。dom

3.兩類函數,經常使用的有8函數

(1)基本隨機函數:seed(),random()性能

(2)擴展隨機函數:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()洗牌測試

2、基本隨機函數spa

1.Seed()orm

(1)隨機數種子,至關於賦值給梅森旋轉中的變量,生成一個梅森旋轉序列。默認值爲當前的系統時間。blog

(2)若是隨機數種子相同,那麼會按特定順序,生成相同的隨機數,也就是說,能夠實現代碼以前執行狀況的復現。由於每次使用的都是相同的隨機數數列。

2.Random()

(1)生成一個01的小數。

(2)不可再現,即便是相同的代碼,因爲參數賦值不可能再相同,很難再現當初程序所使用的隨機數究竟是多少。

(3)

3、擴展隨機函數

1.生成整數

(1)Randint(a,b)隨機生成一個ab之間的整數

(2)Randrange(m,n[,k])隨機生成一個mn之間以k爲步長的整數

(3)Getrandbits(k)生成一個k比特長的隨機整數

2.生成小數

(1)Uniform(a,b)生成ab之間的隨機小數

3.序列

(1)Choice(seq)從序列seq中隨機選擇一個元素

(2)Shuffle(seq)將序列seq中元素隨機排序

4、實例—圓周率的計算—

1.蒙特卡洛方法

2.import random as r

3.import time as t

4.start=t.perf_counter()

5.square=5000*5000

6.hits=0

7.for i in range(square):

8.    a,b=r.random(),r.random()

9.    if pow(pow(a,2)+pow(b,2),0.5)<=1:

10.        hits+=1

11.print('圓周率是:{}'.format(4*hits/square))

12.print('程序運行時間是:{:.7f}'.format(t.perf_counter()-start))

5、數學思惟與計算思惟

1.數學思惟:找到公式,用公式求解,此時計算機就是高級一點的計算器,不用什麼編程

2.計算思惟:抽象,用計算機自動化求解。

3.誰更準確?很差說。

4.   四色定理(世界近代三大數學難題之一),又稱四色猜測、四色問題,是世界三大數學猜測之一。四色定理的本質正是二維平面的固有屬性,即平面內不可出現交叉而沒有公共點的兩條直線。不少人證實了二維平面內沒法構造五個或五個以上兩兩相連區域,但卻沒有將其上升到邏輯關係和二維固有屬性的層面,以至出現了不少僞反例。不過這些偏偏是對圖論嚴密性的考證和發展推進。計算機證實雖然作了百億次判斷,終究只是在龐大的數量優點上取得成功,這並不符合數學嚴密的邏輯體系,至今仍有無數數學愛好者投身其中研究。

6、程序性能與運行時間

1.程序運行時間多數是花費在循環語句上的,關注循環結構

2.使用time庫獲取程序運行時間

3.將程序分段,用time庫計時,測試程序的性能

 

 

 

相關文章
相關標籤/搜索