Random庫python
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)生成一個0到1的小數。
(2)不可再現,即便是相同的代碼,因爲參數賦值不可能再相同,很難再現當初程序所使用的隨機數究竟是多少。
(3)
3、擴展隨機函數
1.生成整數
(1)Randint(a,b)隨機生成一個a,b之間的整數
(2)Randrange(m,n[,k])隨機生成一個m,n之間以k爲步長的整數
(3)Getrandbits(k)生成一個k比特長的隨機整數
2.生成小數
(1)Uniform(a,b)生成a,b之間的隨機小數
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庫計時,測試程序的性能