Python語言程序設計筆記——第四周圓周率計算,質數求和

2020-12-12 從零開始圖像處理

圓周率計算方法:近似公式,蒙特卡羅方法

1. 近似公式

pi = 0N = 100for k in range(N) :pi += 1/pow(16,k)*( \ 4/(8*k+1) – 2/(8*k+4) - \ 1/(8*k+5) – 1/(8*k+6))print("圓周率值是: {}".format(pi))

pi = 0N = 100for k in range(N) :pi += 1/pow(16,k)*( \ 4/(8*k+1) – 2/(8*k+4) - \ 1/(8*k+5) – 1/(8*k+6))print("圓周率值是: {}".format(pi))

>>>圓周率值是: 3.141592653589793

python中可以用「\」換行,功能不變

2. 蒙特卡羅方法

蒙特卡羅方法具體內容可以參考:https://baike.baidu.com/item/%E8%92%99%E7%89%B9%C2%B7%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95/8664362?fromtitle=%E8%92%99%E7%89%B9%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95&fromid=214674&fr=aladdin

其大致原理如下圖所示:

將一個圓放在其外接正方形中,取其1/4,在1/4圓和矩形中隨機撒點,根據點落在各個部分的數量確定圓與正方形面積比,根據面積計算圓周率。

from random import randomfrom time import perf_counterDARTS = 1000*1000hits = 0.0start = perf_counter()for i in range(1, DARTS+1):x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1pi = 4 * (hits/DARTS)print("圓周率值是: {}".format(pi))print("運行時間是: {:.5f}s".format(perf_counter()-start))

3. 質數求和

質數(素數)是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。

質數(素數)求和如下,可修改範圍滿足不同的求解需求

a = 0for i in range(2,100):k = i for j in range(2,i): if i%j == 0: k=0 break a += kprint(a)

相關焦點

  • 德武的Python學習筆記(七):計算圓周率
    今天學習了python的循環方面的知識,熟悉了一個隨機數產生的random庫,以及計算圓周率的案例。關於圓周率,大家都很熟悉,很多人都能夠背幾位。
  • Python之圓周率計算的算法
    由於正方形面積比較容易求得,因此可以通過正方形面積與圓的面積的比值,就能求出圓的面積,進而求出圓周率。蒙特卡洛方法計算圓周率蒙特卡洛方法求解圓周率的編程實現蒙特卡洛方法求解圓周率的編程實現公式法>公式法計算圓周率結合上面公式,利用python中的for循環即可求解圓周率,不再贅述。
  • 北京理工大學《Python語言程序設計》公開課(國家精品)
    Python [paɪθən] 語言,由Guido van Rossum大牛在1990年發明,它是當今世界最受歡迎的計算機程式語言,也是一門對大多數人「學了能用、學了有用、學會能久用」的計算生態語言。
  • 【python語言程序設計】第一章基本語法元素筆記
    ,總覺得實際是在浪費時間,因此決定把學習筆記整理出來,既是進一步的對學習內容進行消化理解,之後在需要所學內容的時候也能夠及時找到方法,如果有幸你看到這些筆記也能收穫到一些東西的話那就更好啦!然後筆記整理的過程我現在是從手寫關鍵詞+疑問點——幕布整理——word加上一些理解的備註(藍字的部分)——複製粘貼,之後也可能會適當調整,選擇最節省時間成本性價比最高的方式叭,希望之後能一直分享下去,還有arcgis、數據分析、城市認知等等方面。
  • 【好課推薦】嵩天:Python語言程序設計
    >>   講解透徹  <<北京理工大學嵩天教授的慕課《Python語言程序設計第二部分,共5周:Python基礎語法,深入Python語言,講解Python基礎語法全貌、實踐計算問題求解。
  • 程序設計與算法(一)C++語言程序設計
    101465624正常血壓101382025求特殊自然數101077826統計滿足條件的4位數個數101466027級數求和101533028分離整數的各個數位101616129數字反轉101656230含k個3的數101500631開關燈101390232求分數序列和101032433計算分數加減表達式的值10991834求階乘的和101541935求出e的值101206736計算多項式的值101051937
  • 利用python計算函數與x軸之間的面積
    用數學表達式表示出來就是:也就是求解任意一個函數的絕對值與x軸之間構成的面積,我們以函數sin(x)為例(因為函數sin(x)便於對計算結果進行檢驗),如圖所示:我們用積分的定義來計算,積分就是將函數分成無數的小段,然後對每一小段進行求和處理。
  • Python程式語言:程序循環結構知識和Python編程計算圓周率
    上一篇小編分享了自己對學習Python語言分支結構的理解和身體BMI指數代碼,這一篇小編跟大家分享小編自己學習Python語言循環結構的理解和一段關於圓周率比較有趣的代碼。小編對Python語言循環結構的運用,理解為像人的手臂,來執行人的大腦發出的指令,達到我們的想要的結果。
  • 計算機二級《Python語言程序設計 最新版》電子教案PDF,請收下
    今天給大家整理了電子版的全國計算機等級考試二級教程,Python 語言程序設計 ,後面有電子版截圖和下載。
  • Python中判斷數字是否為質數的實例講解
    在本篇文章裡小編給大家分享了關於python中判斷數字是否為質數的實例講解內容,有興趣的朋友們可以學習下。
  • 如何用Python計算質數?
    聲明:本文章來源於我的百度經驗質數又稱素數。
  • python計算等差數列
    python是個高級程式語言,但是大家不要認為只有專業的編程人員才能用。事實上,他的計算功能還是蠻強大的,對於中學生,完全可以當作高級計算器來使用。P.S.:以下例子以python2.7為例。當然你會說用等差數列求和公式計算也很快。確實,以上的式子只能求簡單的等差數列和--公差為1。對於其他公差的等差數列怎麼辦呢?
  • Python安裝篇
    計算機是計算工具,更是創新平臺,高效有趣地利用計算機需要更簡潔實用的程式語言。
  • LabVIEW編程實例:計算圓周率pi,學while循環,學移位寄存器
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。不同於C語言,在LabVIEW編程中,循環又往往伴隨著移位寄存器的使用,稍不注意,可能就會出錯。下面通過一個例子演示while循環的使用方法。
  • python質數如何判斷
    python質數判斷的方法:首先運用python的數學函數;然後單行程序掃描素數,代碼為【[ p for p in range(2, N) if
  • 《Python語言程序設計基礎》習題程序整理(第5章)
    習題內容為高等教育出版社出版的由嵩天教授等編寫的《Python語言程序設計基礎(第2版)》中的習題內容。第五章 函數和代碼復用5.2 實現isOdd()函數,參數為整數,如果整數為奇數,返回True,否則返回False。
  • python的內置函數:sum求和函數
    前言看到sum,我們就知道這是一個求和函數,無論是java、javascript還是mysql中,求和是簡單的,但在python中,可以進行一些複雜的元組求和,具體是怎樣的呢?python中的sum求和函數1.sum的使用語法sum(iterable[, start]) iterable -- 可迭代對象,如:列表、元組、集合。
  • 學員筆記|Python數據分析之numpy入門(三)
    本篇筆記中,我將記錄ndarray最重要的功能,運算。numPy內置的許多ufunc函數都在C語言級別實現的,因此它們的計算速度非常快。以下講到的add,subtract等都是numpy提供的ufunc函數。                                           逐元素運算:就是兩個shap一致的矩陣,相同位置上的元素的運算。
  • 少兒編程Python第4課-for循環語句(質數判斷)
    實例1:計算1~100求和的結果如果明確的知道循環執行的次數或者要對一個容器進行迭代(後面會講到),那麼我們推薦使用`for-in`循環,例如下面代碼中計算1~100求和的結果。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
  • C++語言程序設計
    基於上述考慮,本課程雖然內容主要為C語言程序設計,但還是涉及了一部分C++的內容。本課程以實打實提高學生的實際編程能力為目標,只要能寫出好程序,用的是C語言還是C++語言,並不重要。主要為以下三部分:1) 11 周: C語言程序設計2) 2  周:用C++的STL(標準模板庫)輕鬆實現高效的排序和查找。這部分內容雖不多,但對於提高編寫程序的效率極其有用。