本篇內(nèi)容主要講解“Java概率論的計(jì)數(shù)方法是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java概率論的計(jì)數(shù)方法是什么”吧!
為清苑等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及清苑網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、做網(wǎng)站、清苑網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!概率論研究隨機(jī)事件。它源于賭徒的研究。中有許多隨機(jī)事件,比如投擲一個(gè),是否只憑運(yùn)氣呢?
賭徒逐漸發(fā)現(xiàn)隨機(jī)事件的規(guī)律。投擲兩個(gè)是常見(jiàn)的游戲。如果重復(fù)很多次,那么總數(shù)為2的次數(shù)會(huì)比總數(shù)7的次數(shù)少。這就是賭徒把握到的規(guī)律:盡管我無(wú)法預(yù)知事件的具體結(jié)果,但我可以了解每種結(jié)果出現(xiàn)的可能性。這是概率論的核心。
“概率”到底是什么?這在數(shù)學(xué)上還有爭(zhēng)議?!邦l率派”認(rèn)為概率是重復(fù)嘗試多次,某種結(jié)果出現(xiàn)的次數(shù)在嘗試的總次數(shù)的比例?!柏惾~斯派”認(rèn)為概率是主觀信念的強(qiáng)弱。幸好,這些爭(zhēng)議并不影響我們?cè)谌粘I钪惺褂谩案怕省闭軐W(xué)。天氣預(yù)報(bào)的降雨概率為80%時(shí),很多人會(huì)因此帶上傘。報(bào)紙會(huì)分析一場(chǎng)球賽某支球隊(duì)的贏球概率,如果最終贏球概率為10%的球隊(duì)取勝,那么球迷會(huì)感到驚訝,這畢竟是小概率事件。
要知道某個(gè)結(jié)果的概率并不容易。上面分析球隊(duì)的贏球概率,要考慮許多因素。投一個(gè),有6種可能的結(jié)果。許多原因會(huì)影響到結(jié)果,比如撒子是否均勻,比如擲撒子的人是否有技巧偏向。只有在絕對(duì)均勻,且沒(méi)有作弊,每種結(jié)果出現(xiàn)的概率才相同。否則的話,根本無(wú)法給結(jié)果一個(gè)確定的概率值。因此,為了能從數(shù)學(xué)上給結(jié)果分配一個(gè)概率,我們往往會(huì)給隨機(jī)事件增加一些假設(shè)條件。這些條件有理想化的成份,但并不至于偏離現(xiàn)實(shí)。比如,我們說(shuō)擲撒子,撒子均勻,擲的人也沒(méi)有什么特殊手法,并由此推斷每種結(jié)果出現(xiàn)的可能相同。那么,其中任意一個(gè)結(jié)果出現(xiàn)的概率為1/6。
上面我們談到了“等概率”的假設(shè)。如果每種結(jié)果出現(xiàn)的概率相同,那么給結(jié)果分配概率的任務(wù)就變得簡(jiǎn)單一些。在計(jì)算這種概率時(shí),我們只需要等概率的結(jié)果的總數(shù),就可以知道每種結(jié)果的概率。比如擲一個(gè)撒子會(huì)有6種結(jié)果,如果等概率,那么每個(gè)結(jié)果的概率為1/6。對(duì)于一些復(fù)雜的情況,就需要使用到計(jì)數(shù)技巧。
計(jì)數(shù)的基本原理敘述如下:
如果一個(gè)實(shí)驗(yàn)可以分為m個(gè)步驟,每個(gè)步驟分別有n1,n2,...,nmn1,n2,...,nm種可能,那么總共會(huì)有
n1×n2×...×nmn1×n2×...×nm
種可能的結(jié)果。
基本技術(shù)原理的核心是“分步”。對(duì)于簡(jiǎn)單的一個(gè)步驟的事情,我們能比較直接的分辨結(jié)果的總數(shù)。比如生一個(gè)孩子的性別,比如一個(gè)硬幣的正反,比如一個(gè)撒子的結(jié)果。當(dāng)一個(gè)隨機(jī)事件是多個(gè)步驟復(fù)合而成的,而每個(gè)步驟又都是隨機(jī)的,那么分布可以簡(jiǎn)化問(wèn)題的復(fù)雜性。想像一個(gè)餐廳,有三個(gè)窗口,分別賣三種飲料,五種菜和兩種主食。每個(gè)學(xué)生在每個(gè)窗口限選一種,那么學(xué)生的餐飲配套會(huì)有3x5x2共30種可能的結(jié)果。如果每個(gè)窗口的師傅都很隨意霸道,隨手給學(xué)生一樣?xùn)|西,那么我們甚至于可以假設(shè)等概率條件,每種餐飲拍套出現(xiàn)的概率為1/30。
(當(dāng)然,作為學(xué)生,會(huì)抗議這樣的“隨機(jī)”食堂吧?)
基本計(jì)數(shù)原理的應(yīng)用并不局限于概率論。在程序員進(jìn)行算法分析時(shí),無(wú)形中使用的就是進(jìn)行計(jì)數(shù)。比如嵌套循環(huán),外循環(huán)需要M步,內(nèi)循環(huán)需要N步,那么總共進(jìn)行操作的次數(shù)是MxN次??梢哉f(shuō),計(jì)數(shù)是“離散數(shù)學(xué)”非常重要的一個(gè)組成部分;而離散數(shù)學(xué),正是計(jì)算機(jī)專業(yè)的核心數(shù)學(xué)課程。
基本計(jì)數(shù)原理是思考的起點(diǎn)?,F(xiàn)實(shí)中的情況往往會(huì)更多變些。特別是當(dāng)我們“分布”的動(dòng)作都是作用于同一個(gè)群體時(shí),會(huì)相對(duì)復(fù)雜。我們分類了解以下情形:
考慮下面的兩個(gè)問(wèn)題:
一個(gè)連續(xù)擲2次,所有可能的結(jié)果有多少個(gè)?
一個(gè)可選6個(gè)號(hào),每個(gè)號(hào)可以是0到9,共有多少個(gè)可能的結(jié)果?
我們可以看到,這一類的抽樣結(jié)果是由多次抽樣構(gòu)成的。每次抽樣的樣本,在下一次也可能出現(xiàn)。比如第一次為1,第二次還可能為1。這叫做重復(fù)抽樣 (或者說(shuō)有放回的抽樣,sampling with replacement)。在的例子中,每次抽樣的可能出現(xiàn)的結(jié)果都有6種。
樣本出現(xiàn)的次序影響結(jié)果。比如(1,2)(1,2)和(2,1)(2,1)是兩個(gè)不同結(jié)果。
從數(shù)學(xué)上來(lái)說(shuō),如果進(jìn)行m次有放回的抽樣,每次抽樣都有n種可能。如果最終結(jié)果有序,那么將有
nmnm
種可能。
我們下面模擬的例子:
import itertools a = [1, 2, 3, 4, 5, 6] outcomes = list(itertools.product(a, a))print(outcomes)print(len(outcomes))
共返回36個(gè)可能的結(jié)果:
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)] 36
如果每種結(jié)果的出現(xiàn)概率相同,那么對(duì)于其中的某個(gè)具體結(jié)果來(lái)說(shuō),它出現(xiàn)的概率P=1/36P=1/36。
考慮下面兩個(gè)問(wèn)題:
從4個(gè)人中,挑出2個(gè)人分別擔(dān)任隊(duì)長(zhǎng)和副隊(duì)長(zhǎng),有多少種可能?
從10們課種,挑選3門,分別放入周一、周三、周五的課表,有多少種可能?
可以看到,這樣的抽樣是沒(méi)有重復(fù)的。某一次抽樣的樣本在此后不會(huì)出現(xiàn),前面一個(gè)步驟的動(dòng)作減少了后面一個(gè)步驟的選擇,這叫做非重復(fù)抽樣。在非重復(fù)的前提下,每次抽樣可能的結(jié)果數(shù)遞減,比如從4個(gè)人中選一個(gè)作為隊(duì)長(zhǎng),那么副隊(duì)長(zhǎng)只能從3個(gè)人中選擇。
同樣,結(jié)果是有序的。A擔(dān)任隊(duì)長(zhǎng),B擔(dān)任副隊(duì)長(zhǎng),與A擔(dān)任副隊(duì)長(zhǎng),B擔(dān)任隊(duì)長(zhǎng),是兩個(gè)不同結(jié)果。
有序的非重復(fù)抽樣又叫做排列(permutation)。從數(shù)學(xué)上來(lái)說(shuō),從n個(gè)樣品中挑選m個(gè),放入m個(gè)位置,將有
n×(n?1)×...×(n?m+1)n×(n?1)×...×(n?m+1)
種可能。如果我們使用階乘(factorial)運(yùn)算符,那么結(jié)果可以表示為
n!(n?m)!n!(n?m)!
其中,n!=1×2×...×(n?1)×nn!=1×2×...×(n?1)×n。
我們用下面的程序來(lái)模擬隊(duì)長(zhǎng)組合的狀況:
import itertools a = ["Tom", "Lee", "King", "James"] outcomes = list(itertools.permutations(a, 2))print(outcomes)print(len(outcomes))
結(jié)果為
[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'), ('Lee', 'Tom'), ('Lee', 'King'), ('Lee', 'James'), ('King', 'Tom'), ('King', 'Lee'), ('King', 'James'), ('James', 'Tom'), ('James', 'Lee'), ('James', 'King')]
共有12種可能的結(jié)果。
考慮下面的問(wèn)題:
從4個(gè)人中抽出2個(gè)人,有多少種可能?
從一副中抽3張牌,有多少種可能?
在上面的問(wèn)題中,每次抽樣同樣是非重復(fù)的。但這里,抽樣結(jié)果是無(wú)序的。比如說(shuō),抽出"Lee"和"Tom",以及抽出"Tom"和"Lee",是同一個(gè)結(jié)果。這樣的抽樣方式叫做組合(combination)。
m個(gè)樣品有m!m!種排列方式。如果是從n個(gè)樣品中抽取m個(gè)作為組合,所有的這m!m!種排序方式應(yīng)該看做一種。因此,有
n!(n?m)!m!n!(n?m)!m!
種可能結(jié)果。我們可以用下面的方式記錄組合:
(nm)=n!(n?m)!m!(nm)=n!(n?m)!m!
我們下面來(lái)模擬第一個(gè)問(wèn)題:
import itertools a = ["Tom", "Lee", "King", "James"] outcomes = list(itertools.combinations(a, 2))print(outcomes)print(len(outcomes))
有以下結(jié)果
[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'), ('Lee', 'King'), ('Lee', 'James'), ('King', 'James')]
可以看到,從4個(gè)中挑選2個(gè),有6種可能的組合。這是排列的一半。
組合的問(wèn)題可以進(jìn)一步延伸。比如,將9個(gè)球分為1, 3, 5個(gè)的三堆,有多少種方式?這相當(dāng)于從9個(gè)球中抽取1個(gè),再?gòu)氖O碌?個(gè)球中抽取3個(gè),最后剩下的5個(gè)為一堆??梢宰C明,結(jié)果為
9!1!3!5!9!1!3!5!
類似的,將n個(gè)球分為n1,n2,...,nmn1,n2,...,nm個(gè)的堆,其中n=n1+n2+...+nmn=n1+n2+...+nm。將有
n!n1!n2!...nm!n!n1!n2!...nm!
種可能。
考慮下面的問(wèn)題:
刮獎(jiǎng)有4種獎(jiǎng)品。購(gòu)買3張的話,有多少種中獎(jiǎng)可能?
在上面的每次抽樣中,都是重復(fù)抽樣,即抽出后有放回。比如刮獎(jiǎng)中,可以多次刮到同一獎(jiǎng)品。我們?cè)谝粋€(gè)表中記錄結(jié)果:
臺(tái)燈 | 手表 | 電腦 | 汽車 | |
可能1 | 3 | 0 | 0 | 0 |
可能2 | 2 | 0 | 1 | 0 |
可能3 | 0 | 1 | 1 | 1 |
可以看到,我們實(shí)際上是將3張分成4份,每份的數(shù)目不定(≥0)(≥0)。
這與下面的問(wèn)題類似,將5個(gè)相同物品放入三個(gè)不同的容器中:
我們用2個(gè)黑色分隔物,來(lái)將5個(gè)相同的物品分為3堆。比如這里,將物品分為(0, 2, 3)的結(jié)果。
從7個(gè)位置中挑選2個(gè)作為分割物的位置,共有
(72)(72)
種可能。
概括來(lái)講,從n個(gè)樣品中,無(wú)序的重復(fù)抽樣m次,有
(n+m?1m?1)(n+m?1m?1)
種可能。
我們?cè)谏厦娑啻问褂昧穗A乘運(yùn)算,在Python中,它可以使用math.factorial實(shí)現(xiàn):
import mathprint(math.factorial(5))
此外,組合可以使用scipy.misc.comb來(lái)近似計(jì)算,比如:
import scipy.miscprint(scipy.misc.comb(4, 2))
到此,相信大家對(duì)“Java概率論的計(jì)數(shù)方法是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前名稱:Java概率論的計(jì)數(shù)方法是什么-創(chuàng)新互聯(lián)
文章URL:http://www.rwnh.cn/article44/cojhhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版、小程序開(kāi)發(fā)、網(wǎng)站排名、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)