概率,它是指隨機(jī)事件出現(xiàn)的可能性大小的量度。隨機(jī)事件是指在相同條件下,可能出現(xiàn)也可能不出現(xiàn)的事件。例如,從一批有正品和次品的商品中,隨意抽取一件,“抽得的是正品”就是一個隨機(jī)事件。用數(shù)學(xué)方法我們會這么解決:設(shè)所有商品總共有n件,其中“抽得的是正品”事件出現(xiàn)了m次,即其出現(xiàn)的頻率為m/n。m/n為事件“抽得的是正品”出現(xiàn)的概率。那用編程的方法又該怎么解決呢?
抽獎就是經(jīng)典概率問題,現(xiàn)在有6張紙條,其中有1張寫著一等獎,2張寫著二等獎,3張寫著三等獎?,F(xiàn)在隨機(jī)從中抽取一張,請問抽中一等獎的概率為多少?
由于6張紙條都有可能抽到,所以事件總數(shù)為6,其中抽到一等獎的事件數(shù)為1(因為一等獎只有一張),所以抽到一等獎的概率為1/6;二等獎的概率為2/6;三等獎的概率為3/6。
顏色搭配,一個口袋里裝有12個球,其中有3個是紅色的,3個是白色的,6個是黑色的?,F(xiàn)在從中任意取8個,請問有多少種不同的顏色搭配?
由于紅球有3個,白球有3個,黑球有6個,從中抽取8個球,組合的方案有很多。由于紅球和白球一共只有6個,所以8個球中一定有黑球,且黑球的個數(shù)一定是8減去紅球個數(shù)再減去白球個數(shù);黑球個數(shù)最多是6個所以小于7個;紅球和白球個數(shù)最多是3個,最少的可能是0個,所以小于4個。
將以上條件通過列表分類,并將題意條件轉(zhuǎn)換為表達(dá)式。
我們可以采取枚舉算法依次假設(shè),假設(shè)抽中紅球0個,白球0個,黑球個數(shù)為8-0-0=8個,但是8個黑色小球與表達(dá)式黑球<7相矛盾所以這個假設(shè)是不成立的不用計入結(jié)果列表中。下面我們再繼續(xù)假設(shè)白球個數(shù)為1個,得出黑球個數(shù),看黑球個數(shù)是否小于7,依次假設(shè)并與所有已知表達(dá)式驗證,成功即找到一種搭配方案存入結(jié)果列表。
找到一種搭配方案后我們將這種由“紅球個數(shù)、白球個數(shù)、黑球個數(shù)”組成的字符串?dāng)?shù)據(jù)添加到列表中。
所謂列表,是一種復(fù)雜的存儲數(shù)據(jù)的容器,比普通變量高級,普通變量同一時間只能存儲一個數(shù)據(jù),但是列表可以同時存儲多個數(shù)據(jù),每個數(shù)據(jù)占領(lǐng)列表一項,列表的項數(shù)從1開始,數(shù)據(jù)格式如圖1。
如圖1所示為一個列表名為“我的列表”的列表,列表中總共存儲了10項數(shù)據(jù),數(shù)據(jù)的編號(在列表中的位置)從1開始依次增加,列表每一項的數(shù)據(jù)為“第”+位置+“項數(shù)據(jù)”。
所以我們先建立一個名為“搭配方案”的列表,由于抽中的紅球白球黑球的個數(shù)都是未知的,所以建立3個變量,名字分別為紅球、白球、黑球。假設(shè)本次選中的紅球個數(shù)為0,白球個數(shù)為0,判斷黑球個數(shù)是否小于7,若成立,則猜想正確,將這種搭配方法加入列表中,否則,假設(shè)白球數(shù)量為1(白球+1),再驗證……以此類推,直到判斷完所有的可能。
具體程序如圖2。通過循環(huán)的嵌套,完成紅球從0到3,白球從0到3的所有情況,黑球設(shè)置為(8-紅球-白球),最內(nèi)層的判斷是“黑球<7”。如果符合這個條件就符合所有已知條件了。將結(jié)果存入列表(如圖2)。
運行后我們可以看見列表中存儲的搭配方案有這些(如圖3):
總共有13種搭配方案。
通過本實例我們了解了“概率”概念,再次運用了關(guān)系運算的知識。掌握了通過編程解決概率問題的方法和步驟。