階乘之和計算 如何計算概率

2021-10-12 08:47:43 字數 2962 閱讀 3457

概率是對事件發生可能性大小的度量。不會發生的概率為0,一定會發生的概率是100%,也可以說是1.

例如拋硬幣,正面和反面出現的可能性都是50%,篩子每面出現的可能性都是六分之一,這些概率值通過直覺和經驗就能想出來。雖然我們知道實驗幾次不一定是這個結果,但試驗次數很多時,出現的頻率就會接近概率值,無窮次時,頻率就會等於概率。

通過直觀和經驗就能知道概率的幾個基本命題,也可以說是公理,蘇聯的數學家柯爾莫哥洛夫總結了3條概率公理。

1. 事件發生的概率不小於0

2. 集合中的事件必有一件發生,則發生的概率之和等於1

3. 集合中事件互相不容,沒有交集,則發生至少乙個的概率等於每個事件概率之和

這3個公理不需記憶,應用時也不需刻意用,用直覺和經驗靠算術思維就能想出概率計算方法。

通過這3個公理也可以推導出6個定理,也不需記憶,甚至不需要知道。

概率計算不像方程應用,簡單地分別考慮每個數值含義列出等式,然後變換方程就能求解。列概率算式無法這樣做,那些概率定理和概率公式以及寫法,如:貝葉斯公式 p(a|b)=p(b|a)*p(a)/p(b) ,對列出概率算式幫助不大,也無法降低分析和推理難度,也就是說概率知識的公理化意義不大。概率計算時,只需按算術思維,按直覺和經驗直接列出算式,然後進行四則運算即可。簡單的場合,可以直接列出乙個算式就可以算出概率值,在稍微複雜的場合需要分別列出幾個算式,然後再去轉換,這些複雜場合的概率演算法常見的有頻次演算法,集合對應演算法,和反向演算法。後邊分別介紹。

這裡再次強調下,把繁雜的命題公理化,可以簡化記憶和使用,如果命題本身並不繁雜,命題也不需要複雜推理得出,直覺就能判斷,公理化就沒必要。概率和統計學就是這樣,命題並不多,大都能直覺記憶和理解,就沒有必要公理化,為公理化而公理化會把簡單的知識變得繁雜,不利於記憶和使用。

下面介紹的幾種常用計算概率方法,都不用公理化的概率知識,直接用直覺和經驗,依靠算術思維就能想出。

概率計算方法一:頻次演算法

即分別考慮每種事件發生的頻次,單個事件頻次除總頻次,即是概率值,或者單個事件頻次除以其他事件頻次,然後再轉化為概率值。

例如:郵件箱中收到大量郵件,有詐騙郵件,有正常郵件。根據統計,詐騙郵件**現文字:「中獎」佔30%,出現「www.」佔40%;正常郵件出現「中獎」佔1%,出現「www.」佔2%。資料統計顯示郵箱中詐騙郵件佔比為20%,隨機抽取一封郵件發現含有「中獎」和「www.」,這封郵件是詐騙郵件的概率是多少。

想直接列出概率算式有點難度,通過頻次計算就比較簡單。

這封郵件要麼是詐騙郵件,要麼是正常郵件。

先考慮含有「中獎」和「www.」的正常郵件有多少:(1-20%) x 1% x 2% = 160 %%%

再考慮 含有「中獎」和「www.」的詐騙郵件有多少 20% x 30% x 40% = 240%%%

兩者比值 160 :240 = 2:3

因為這封郵件不是正常郵件就是詐騙郵件,兩者的概率之和是1,所以詐騙郵件的概率就是:

3 :(2+3)= 60%。

從這個例子中可以看出,用頻次計算概率,就是分別考慮所有情況發生的頻次,然後算出比值,然後再看總概率等於多少,若是互斥事件,總概率就是1,所以頻次比就可以轉化為概率值。這樣用分別考慮各自的頻次的方法就能降低思考難度。

再舉個取球的例子,兩個盒子,甲盒子裝有70個白球30個紅球,乙盒子裝有20個白球80個紅球。隨意拿出乙個盒子,取出乙個球看顏色,再放回,連續取20次,發現10個白球10個紅球。問拿出的盒子是甲的概率多少。

用頻次演算法極為簡單,分別算頻次。

甲盒子中拿出10個白球和10個紅球的頻次是 0.7^10 x 0.3^10

乙盒子同樣演算法 0.2^10 x 0.8^10

頻次之比就是概率之比,因為是概率之和等於1,就很容易把頻次比轉化為概率。

在教科書中,針對 這類問題,發明條件概率概念和貝葉斯公式,甚至還用到階乘的運算,這種做法並不能降低思考的難度,在我看來沒有必要。

概率計算方法二:集合對應法

舉例:半徑為1的圓,通過上面一點做弦,弦長小於根號2的概率多少

通過畫圖顯示,直觀就能判斷,弦的數目對應圓上的點,這些點的集合就是弧長,因此弦的數目可以用弧長對應,小於根號2的弦和所有弦的數目就是弧長和圓周長的比值。有了這種對應關係,很容易計算出概率值50%。

再舉個稍微複雜的例子:在0和2之間取2個值x, y。 問x^2 + y <2 的概率是多大。

畫個直角座標系,很直觀地就能知道,所有的取值點的集合是面積,對應2 x 2的區域面積,x^2 +y <2的取值點就對應曲線 x^2 +y =2 到座標原點的面積,用積分就能求出面積,然後兩個面積比值就是概率。

再擴充套件下,在0和2之間取4個值 a,b,c,d,a^4+b^3 +c +d <2 的概率是多少。

同樣是積分之後與 2^4相除,即是概率值。

在教科書 中,針對這類問題,發明了古典和幾何概型,發明了概率函式,概率密度等概念,繁瑣難記,其實通過畫圖,直覺就能判斷出集合對應關係,把概率運算轉化為圖形長度,面積,體積或者4維以上的積分運算,從而大幅降低思考和計算的難度。

概率計算方法三:反向演算法

有些場合,正面去計算比較麻煩,如果從反面去計算,即先計算它的相斥事件的概率,再用1去減就可以得出概率值。

如常用的例子:乙個班級同學有40位,至少有兩個同學生日相同的概率是多大。

這個例子如果從正面考慮,先計算所有情況的頻次,再考慮生日相同的頻次,太麻煩了。

如果反方向考慮,至少有兩個同學生日相同的概率的反面就是所有同學生日都不同,這個反面概率計算出來後用1減就得出了生日相同的概率。所有生日都不同的概率就比較容易計算。隨便先拉出第乙個同學,占用了某天,然後再拉出下一位,生日不同的概率是364/365,再拉出第三位同學,前面兩個同學占用了2個日子,所以第三個同學與前兩個同學生日不同的概率是363/365,以此類推,這些概率都相乘就是所有同學生日都不同的概率值,用1減去這個長式子乘積就是至少有兩個同學生日相同的概率值。

通過這個例子可以看出,有些場合,反向的概率值容易計算,然後用1去減就得出了正面的概率值,思考難度大幅降低。

以上的三種演算法都不需要學習教科書中的公理化知識,只要通過直覺和經驗,用算術思維就能想出來,思考容易,運算也容易。

高精度計算 階乘之和

include include include define maxn 2000 define maxm 2001 using namespace std int fact 51 maxm int temp maxm 階乘之和 本題需要注意的地方 1。bigint int 小的int不必轉換為big...

P1009 階乘之和(大數計算)

allsight c語言 高精度加法 問題描述 輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。演算法描述 由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。...

階乘計算 大數計算

輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相應的進製。首先...