python中math库_Python的math库、random库实际应用
昨天在說那個列表的時候,我挖了一個坑,不知道你們看出來沒有?就是用循環語句寫迭代的時候,總是運行不了結果,其實是因為我沒有縮進的問題,因為有一個for循環,下面print如果沒有對應的縮進,那么就說明這個循環語句少了一個輸出,是一個死循環。所以print必須要有個縮進,寫在i下面即可。(昨天一個老鐵凌晨的時候問我為啥,哈哈)
好了,廢話不多說,今天我們先介紹一下math庫和random庫,昨天腳疼沒當回事,結果今天更嚴重了,一直在病床上躺著,剛剛把今天要說的東西整理好筆記,對于math庫和random庫,我直接就給個圖片,行不?先看一下,適當的背一下,下面教你們如何引用這些函數?順便來個實例。
math庫:
random庫:
以上的函數一定要記會!因為這些東西是我們用來吃飯的東西!
其中random庫的seed函數我打算明天好好說一下,因為在Python中這個seed比較重要。
下面我直接用一個實例來說一下如何運用上面的函數吧
小程序的目的是:精確的求π,但是π只能用近似的方法不斷來接近更精確的值,我們便用一個Monte Carlo方法來求π的值,其中monte carlo法說實話啊,就是幾何概型,在第一象限中,設置一個邊長為1的正方形,然后以原點為圓心,半徑為1,在第一象限畫一個四分之一圓,然后往正方形里面隨機投點,最后點投入的越來越多,通過比較落在四分之一圓內的和整個正方形內部的點的個數,就可以來求出四分之一圓的面積,進而得出π的近似值。通過提高投點的個數,就可以得到更為精確的π值。
# pi.py
fromrandomimportrandom
frommathimportsqrt
fromtimeimportclock
DARTS =1200
hits =
clock()
foriinrange(1,DARTS):
x,y = random(),random()
dist = sqrt(x**2+ y**2)
ifdist
hits = hits +1
pi =4* (hits/DARTS)
print("Pi的值是 %s"% pi)
print("程序運行時間是 %-5.5ss"% clock())
下面我來解釋一下這個小程序。
這個程序是一個典型的IPO模型
輸入:拋灑點的數量
處理:對于每個拋灑點,通過計算拋灑點到圓心的距離,來判斷拋灑點是落在了圓內還是圓外。進而統計點的數量。
輸出:π
但是對于math庫和random庫,我們需要先引用math庫和random庫,因為我們在計算拋灑點到原因的距離的時候,用到了sqrt(x^2+y^2)與1進行比較,其中sqrt屬于math庫的函數,而且其中我們拋灑點是隨機拋灑的,所以用到了random,屬于random庫里面的函數,其中我想通過設置不同的拋灑點數量來得到不同的π值,并且想看看與輸出時間的關系,所以我又引入了一個time函數。
具體如何引用math庫、random庫、time呢?
就用
fromrandomimportrandom
frommathimportsqrt
fromtimeimportclock
就是之前講的其中一種方式
from 函數庫 import 函數名
然后設置拋灑點的數量,其中DARTS就是拋灑點的數量。
hits表示的是落在四分之一圓內的拋灑點數量。
接下來是一個for循環:
x,y的值是隨機的,然后dist就是拋灑點距離圓心的距離,下面是一個if函數,如果距離小于1,那么hits就加1.
然后求π的公式就
pi=4*(hits/Darts)
然后print即可。
很簡單的一個小程序,你們運行的時候,告訴我一定要注意什么?特別是循環語句里面還內嵌了一個if語句,特別特別要注意什么??留言。
當darts為1200的時候 π值為3.17
當darts為30000的時候,π為3.1204
好了今天就這樣了,躺床上寫文章真的是超級麻煩,我這邊放了一個ipad,我解釋程序的時候,還要把程序發到ipad上,這樣才能邊看程序邊打字,一個手機,一個鼠標、鼠標墊,一個小桌子放筆記本電腦,然后旁邊又是筆記本和書還有筆,躺床上真的好難受!希望明天就可以下床。
總結
以上是生活随笔為你收集整理的python中math库_Python的math库、random库实际应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么恢复被格式化u盘电脑格式化了如何恢复
- 下一篇: python渐变色代码_如何在Pytho