ryPython02

I am Ry. Ry Love Teaching.

12 years ago
ryPython_統計學程式.py
前言=''' 寫程式,是思想的表達。 運用自己最習慣的語言(在此指中文), 搭配適量的第二語言(在此指 English ), 是我以及大部分現代華人最習慣的表達方式。 用最習慣的方式,才比較可能有產出。 運用全英語(Full English) 的表達, 讓以英語為第二語言的人士永遠無法「暢所欲言」。 去年, 我發現了 Python ,特別是 Python 3.x, 它把 Unicode 當作程式語言的基底。 在一個 Python3.x 程式中, 最重要的變數 (variable) 及函數 (function) , 也就是資料 (data) 和方法 (method) , 其實就是名詞 (noun) 及動詞 (verb) , 都可以自由無礙的使用中文了(或者其他你喜歡的語言,像是日文)。 以前中國的白話文運動,提倡我手寫我口, 是要掃除文言文對人心的綑綁, 強調人們可以想講什麼就寫什麼, 不必腸思枯竭的搖頭晃腦去找那些艱難的詞彙。 後來,現代文學才整個興盛起來, 寫文章不再是少數文人貴族的特權。 突然之間, Python 的出現, 似乎就像是開啟了一場程式設計的白話文運動。 就我個人來說,第二語言的障礙,似乎被掃除泰半了, 讓我重新燃起撰寫程式的樂趣。 以下程式, 運用電腦產生 n=100 個隨機數, 預設其為 高斯 (Gauss) 分布,形成一個樣本集合 S。 其中,以 mu=0 及 sigma=1 為母體平均數及母體標準差。 運用統計學的公式,計算出:樣本平均數,以及樣本標準差 請大家欣賞 Python 中文(搭配少量英文)程式的優雅。 呂仁園,2012/06/14 ''' print(前言) input('按鍵繼續。press any key to continue...\n') import random 隨機數產生器R = random.Random() 母體平均數mu = 0 母體標準差sigma = 1 樣本集合S = [] 樣本總個數n = 100 for i in range(樣本總個數n): x = 隨機數產生器R.gauss(母體平均數mu,母體標準差sigma) 樣本集合S.append(x) print( '樣本總個數n=',樣本總個數n,'\n', '樣本集合S=', 樣本集合S, '\n' ) 樣本和s = 0 for x in 樣本集合S: 樣本和s += x 樣本平均m = 樣本和s / 樣本總個數n 樣本平方和s = 0 for x in 樣本集合S: 樣本平方和s += x ** 2 樣本變異數v = 樣本平方和s / 樣本總個數n - 樣本平均m ** 2 樣本變異數v *= 樣本總個數n /(樣本總個數n-1) # 讓它 成為「無偏差」(unBiased) 樣本標準差s = 樣本變異數v ** 0.5 print( '\n', '樣本平均m=', 樣本平均m, '\n', '樣本標準差s=', 樣本標準差s, '\n', '\n' )