c概率演算法
『壹』 中獎概率怎麼計算
這個問題在數學中就是
排列組合
中的組合演算法,組合:從n個不同元素中,任取m(m≤n)個元素並成一組,叫做從
n個不同元素中取出m個元素的一個組合.
從組合的
定義
知,如果兩個組合中的元素完全相同,不管元素的
順序
如何,都是相同的組合;只有當兩個組合中的元素不完全相同時,才是不同的組合.
組合計算公式為:註:公式中n!
表示n的階層,即:n!=n*(n-1)*(n-2)*.....*1
公式中m!表示m的階層,即:m!=m*(m-1)*(m-2)*...*1例如:n為9,m為5,那麼這個計算公式就是:C(m,n)=9*8*7*6*5*4*3*2*1/[5*4*3*2*1*(4*3*2*1)]所有遇到有關數學中的
組合問題
都可以用這個公式來計算所以像
雙色球玩法
的話,從33個
紅球
中選6個紅球的概率就為:C(33,6)=33!/[6!*(33-6)!]=1107568
他的概率就為:1/1107568另外雙色球中
藍球
是16選1,他的概率為:1/16那麼中雙色球一等獎的概率就為:C(33,6)
*C(16,1)
=
17,721,088
『貳』 概率計算公式是什麼
條件概率:
條件概率:已知事件B出現的條件下A出現的概率,稱為條件概率,記作:P(A|B)
條件概率計算公式:
當P(A)>0,P(B|A)=P(AB)/P(A)
當P(B)>0,P(A|B)=P(AB)/P(B)
乘法公式:
P(AB)=P(A)×P(B|A)=P(B)×P(A|B)
推廣:P(ABC)=P(A)P(B|A)P(C|AB)
全概率公式:
設:若事件A1,A2,…,An互不相容,且A1+A2+…+An=Ω,則稱A1,A2,…,An構成一個完備事件組。
概率演算法:概率演算法的一個基本特徵是,對所求問題的同一實例用同一概率演算法求解兩次可能得到完全不同的效果。
隨機數在概率演算法設計中扮演著十分重要的角色。在現實計算機上無法產生真正的隨機數,因此在概率演算法中使用的隨機數都是一定程度上隨機的,即偽隨機數。
『叄』 抽獎活動的中獎幾率是怎麼算的
中獎的概率就是用獎品的數量除以參與抽獎的總人數,得到的結果就是抽到該獎品的中獎概率。如果參與抽獎人數有800個人,獎品有5件,那麼中獎的概率就是:5/800=0.625%。
在國內彩市中頭獎概率最低的是大樂透玩法,概率僅為2142萬分之一。其次是雙色球的頭獎中出概率,為1772萬分之一。
而美國最熱門的兩大彩種之一,兆彩(超級百萬)的中頭獎概率為1.75億分之一,堪稱史上難度最大的彩票玩法,也就是說,美國兆彩中頭獎的概率僅為雙色球的1/9.86。
概率,亦稱「或然率」,它是反映隨機事件出現的可能性大小。隨機事件是指在相同條件下,可能出現也可能不出現的事件。
例如,從一批有正品和次品的商品中,隨意抽取一件,「抽得的是正品」就是一個隨機事件。設對某一隨機現象進行了n次試驗與觀察,其中A事件出現了m次,即其出現的頻率為m/n。
經過大量反復試驗,常有m/n越來越接近於某個確定的常數(此論斷證明詳見伯努利大數定律)。該常數即為事件A出現的概率,常用P
(A) 表示。
『肆』 (概率問題)抽獎的概率計算是什麼
(概率問題)抽獎的概率計算(1-1/3)*1*1/1=2/3。
如果是連續抽則激到1-3個的,而且是不放回抽,則:
(一個)=5/205=1/41。
(二個)=5/205*(4/204)=1/41*(1/51)=1/2091。
(三個)=5/205*(4/204)*(3/203)=1/141491。
因為只有2種選擇,換或是不換。假設選換,第一次就抽中的概率是1/3,那麼選換後就成了不中;抽不中的是2/3,選擇換就是中;於是相當於選換中獎率2/3;如果選不換,同理得到中獎率是1/3。
概率
是度量孫物襪偶然事件發生可能性的數值。假如經過多次重復試驗(用X代表),偶然事件(用A代表)出現了若干次(用Y代表)。以X作分母,Y作分子,形成了數值(用P代表)。在多次試驗中,螞逗P相對穩定在某一數值上,P就稱為A出現的概率。如偶然事件的概率是通過長期觀察或大量重復試驗來確定,則這種概率為統計概率或經驗概率。
『伍』 (六) 概率演算法
前面所討論演算法的每一計算步驟都是確定的,而本次所討論的概率演算法允許演算法在執行過程中隨機地選擇下一個計算步驟。在許多情況下,當演算法在執行過程中面臨一個選擇時,隨機性選擇常比最優選擇省時。因此概率演算法可在很大程度上降低演算法的復雜度。
概率演算法的一個基本特徵是對所求解問題的同一實例用同一概率演算法求解兩次可能得到完全不同的效果。這兩次求解所需的時間甚至所得到的結果可能會有相當大的差別。一般情況下, 可將概率演算法大致分為四類:數值概率演算法、蒙特卡羅(MonteCarlo) 演算法、拉斯羨孝陵維加斯(Las Vegas) 演算法和舍伍德(Sherwood) 演算法。
隨機數在隨機化演算法設計中扮演著十分重要的角色。在現實計算機上無法產生真正的隨機數,因此在隨機化演算法中使用的隨機數都是一定程度上隨機的,即偽隨機數。
線性同餘法 是產生偽隨機數的最常用的方法。由線性同餘法產生的隨機序列 滿足
其中 。d稱為該隨機序列的種子。如何選取該方法中的常數b、c和m直接關繫到所產生的隨機序列的隨機性能。這是隨機性理論研究的內容,已超出本書討論的范圍。從直觀上看,m應取得充分大,因此可取m為機器大數,另外應取 ,因此可取b為一素數。
為了在設計概率演算法時便於產生所需的隨機數,建立一個隨機數類RandomNumber:該類包含一個需由用戶初始化的種子randSeed。給定初始種子後,即可產生與之相應的隨機序列。種子randSeed是一個無符號長整型數, 可由用戶選定也可用系統時間自動產生。函數Random的輸入參數 是一個無符號長整型數,它返回 范圍內的一個隨機整數。函數fRandom返回[0,1) 內的一個隨機實數。
數值概率演算法常用於數值問題的求解。這類演算法所得到的往往是近似解。且近似解的精度隨計算時間的增加而不斷提高。在許多情況下,要計算出問題的精確解是不可能的或沒有必要的,因此用數值概率演算法可得到相當滿意的解。
當一個確定性演算法在最壞情況下的計算復雜性與其在平均情況下的計算復雜性有較大差別時
舍伍德演算法就是一種利用隨機演算法改造確定性演算法,消除或減少問題的好壞實例間的這種差別。舍伍德演算法精髓不是避免演算法的最壞情況行為,而是設法消除這種最壞情形行為與特定實例之間的關聯性。
思想:利用隨機演算法改造已有演算法,使得演算法的性能盡量與輸入數據無關,即平滑演算法的性能。它總能求得問兄戚題的一個解,且求得的解總是正確的。
演算法的性能 =平均性能 + 一個很小的隨機值。 舍伍德演算法是為了得到好的平均性能。
一個演算法,對於不同的輸入數據,其演算法的性能是不一樣的。比如快排演算法,每次選擇第一個元素作為基準,慎帶對序列從小到大排序:
拉斯維加斯演算法不會得到不正確的解。一旦用拉斯維加斯演算法找到一個解,這個解就一定是正確解。但有時用拉斯維加斯演算法會找不到解。
與蒙特卡羅演算法類似,拉斯維加斯演算法找到正確解的概率隨著它所用的計算時間的增加而提高。對於所求解問題的任一實例,用同一拉斯維加斯演算法反復對該實例求解足夠多次,可使求解失效的概率任意小。
蒙特卡羅演算法用於求問題的准確解。對於許多問題來說,近似解毫無意義。例如,一個判定問題其解為「是」或「否」,二者必居其一,不存在任何近似解答。又如,我們要求一個整數的因子時所給出的解答必須是准確的,一個整數的近似因子沒有任何意義。
用蒙特卡羅演算法能求得問題的一個解,但這個解未必是正確的。求得正確解的概率依賴於演算法所用的時間。演算法所用的時間越多,得到正確解的概率就越高。蒙特卡羅演算法的主要缺點也在於此。一般情況下,無法有效地判定所得到的解是否肯定正確。
在實際應用中常會遇到一些問題,不論採用確定性演算法或隨機化演算法都無法保證每次都能得到正確的解答。蒙特卡羅演算法則在一般情況下可以保證對問題的所有實例都以高概率給出正確解,但是通常無法判定一個具體解是否正確。
有些蒙特卡羅演算法除了具有描述問題實例的輸入參數外,還具有描述錯誤解可接受概率的參數。這類演算法的計算時間復雜性通常由問題的實例規模以及錯誤解可接受概率的函數來描述。
參考鏈接: http://www.ruanyifeng.com/blog/2015/07/monte-carlo-method.html
數值概率演算法的應用
舍伍德演算法的應用
拉斯維加斯演算法的應用
蒙特卡羅演算法的應用
『陸』 概率演算法
最近做了一個活動抽獎需求,項目需要控制預算,概率需要分布均勻,這樣才能獲得所需要的概率結果。
例如抽獎得到紅包獎金,而每個獎金的分布都有一定概率:
現在的問題就是如何根據概率分配給用戶一定數量的紅包。
演算法思路 :生成一個列表,分成幾個區間,例如列表長度100,1-40是0.01-1元的區間,41-65是1-2元的區間等,然後隨機從100取出一個數,看落在哪個區間,獲得紅包區間,最後用隨機函數在這個紅包區間內獲得對應紅包數。
時間復雜度 :預處理O(MN),隨機數生成O(1),空間復雜度O(MN),其中N代表紅包種類,M則由最低概率決定。
優缺點 :該方法優點是實現簡單,構造完成之後生成隨機類型的時間復雜度就是O(1),缺點是精李鎮度不夠高,佔用空間大,尤其是在類型很多的時候。
演算法思路 :離散演算法通過概率分布構造幾個點[40, 65, 85, 95,100],構造的數組的值就是前面概率依次累加的概率之和。在生成1~100的隨機數,看它落在哪個區間,比如50在[40,65]之間,就是類型2。在查找時,可以採用線性查找,或效率更高的二分查找。
演算法復雜度 :比一般演算法減少佔用空間,還可以採用二分法找出R,這樣,預處理O(N),隨機數生成O(logN),空間復雜度O(N)。
優缺點 :比一般演算法佔告飢用空間減少,空間復雜度O(N)。
演算法思路 :Alias Method將每種概率當做一列,該演算法最終的結果是要構造拼裝出一個每一列合都為1的矩形,若每一列最後都要為1,那麼要將所有元素都乘以5(概率類型的數量)。
此時會有概率大於1的和小於1的,接下來就是構造出某種演算法用大於1的補足小於1的,使每種概率最後都為1,注意,這里要遵循一個限制:每列至多是兩種概率的組合。
最終,我們得到了兩個數組,一個是在下面原始的prob數組[0.75,0.25,0.5,0.25,1],另外就是在上面補充的Alias數組,其值代表填充的那一列的序號索引,(如果這一列上不需填充,那麼就是NULL),[4,4,0,1,NULL]。當然,最終的結果可能不止一種,你也可能得到其他結果。
舉例驗證下,比如取第二列,讓prob[1]的值與一個隨機小數f比較,如果f小於prob[1],那麼結果就是2-3元,否則就是Alias[1],即4。
我們可以來簡單驗證一下,比如隨機到第二列的概率是0.2,得到第三列下半部分的概率為0.2 * 0.25,記得襪擾返在第四列還有它的一部分,那裡的概率為0.2 * (1-0.25),兩者相加最終的結果還是0.2 * 0.25 + 0.2 * (1-0.25) = 0.2,符合原來第二列的概率per[1]。
演算法復雜度 :預處理O(NlogN),隨機數生成O(1),空間復雜度O(2N)。
優缺點 :這種演算法初始化較復雜,但生成隨機結果的時間復雜度為O(1),是一種性能非常好的演算法。
『柒』 怎麼計算概率
概率是對事件發生可能性大小的度量。不會發生的概率為0,一定會發生的概率是100%,也可以說是1.例如拋硬幣,正面和反面出現的可能性都是50%,篩子每面出現的可能性都是六分之一,這些概率值通過直覺和經驗就能想出來。雖然我們知道實驗幾次不一定是這個結果,但試驗次數很多時,出現的頻率就會接近概率值,無窮次時,頻率就會等於概率。
通過直觀和經驗就能知道概率的幾個基本命題,也可以說是公理,蘇聯的數學家柯爾莫哥洛夫總結了3條概率公理。
1. 事件發生的概率不小於0
2. 集合中的事件必有一件發生,則發生的概率之和等於1
3. 集合中事件互相不容,沒有交集,則發生至少一個的概率等於每個事件概率之和
這3個公理不需記憶,應用時也不需刻意用,用直覺和經驗靠算術思維就能想出概率計算方法。
通過這3個公理也可以推導出6個定理,也不需記憶,甚至不需要知道。
概率計算不像方程應用,簡單地分別考慮每個數值含義列出等式,然後變換方程就能求解。列概率算式無法這樣做,那些概率定理和概率公式以及寫法,如:貝葉斯公式 P(A|B)=P(B|A)*P(A)/P(B) ,對列出概率算式幫助不大,也無法降低分析和推理難度,也就是說概率知識的公理化意義不大。概率計算時,只需按算術思維,按直覺和經驗直接列出算式,然後進行四則運算即可。簡單的場合,可以直接列出一個算式就可以算出概率值,在稍微復雜的場合需要分別列出幾個算式,然後再去轉換,這些復雜場合的概率演算法常見的有頻次演算法,集合對應演算法,和反向演算法。
『捌』 概率計算方法 概率計算方法是什麼
1、頻次演算法。即分別考慮每種事件發生的頻次,單個事件頻次除總頻次,即是概率值,或者單個事件頻次除以其他事件頻次,然後再轉化為概率值昌腔。
2、集合對應法。舉例:半徑為1的圓,通過上面一點做弦,弦長小於根號2的概率多少。通過畫圖顯示,直觀就能判斷,弦的數目對應圓上的點,這些點的集合就是弧長,因此弦的數目可以用弧長對應,小於根號2的弦和所有弦的數目就是弧長和圓周長的比值。有了這種對應關系,很容易計算出概率值50%。
3、反向演算法。有些場悄猛合,正面去計算比較耐運衫麻煩,如果從反面去計算,即先計算它的相斥事件的概率,再用1去減就可以得出概率值。
『玖』 概率公式c怎麼計算
概率公式C的計算方法:
一般來說,C(n,m)(n是上標,m是下標。),C(n,m)=m(m-1)(m-2)...(m-n+1)/n!其中m<=n。n!是n的階乘。例如:C(2,4)=(4*3)/(2*1)。C(3,3)=(3*2*1)/(3*2*1)=1。
概率公式C是組合方法的數量,跟順序沒有關系,比如:C(1,3)表示從3個人小明,小蘭,小紅裡面選出1個。總共的方法有3種。第一種選出小明,第二種選出小蘭,第三種選出小紅。順序可以調換不影響結果。