S5Q4 詐欺游戲中雙背面牌的幾率模擬
本周的 GGB 任務(wù)要談日劇 Liar Game S1E07 的一個(gè)雙背面撲克牌的幾率片段。這是部漫畫改編的日劇,劇情十分燒腦,天真善良的女主角陷入一個(gè)神秘組織的密室游戲中,在這游戲就要比拼大家的心機(jī)算計(jì)。天真女主該如何能逃脫呢?數(shù)學(xué)又在這決策中起了什么作用了?
在第7集中引用了出現(xiàn)了經(jīng)典的雙面卡片的機(jī)率游戲。有兩張卡片:一張雙面為OO, 另一張一O一X。當(dāng)抽出一張,其一面為O時(shí),那反面為X 的機(jī)率為何呢?這次就用 GGB 來做個(gè)模擬這游戲的抽牌的活動(dòng)。

一、影劇片段回顧
先回顧這抽牌片段。思考這個(gè)看似公平的游戲,其真實(shí)獲勝幾率為何呢?





二、你將學(xué)會(huì)
利用【區(qū)間隨機(jī)數(shù)】制造隨機(jī)效果
利用【滑動(dòng)條】來將隨機(jī)變換的過程顯示
利用【按鈕】來更新結(jié)果,做記錄
利用 【條形圖】?來繪制統(tǒng)計(jì)圖表
三、利用 【區(qū)間隨機(jī)數(shù)】?制造隨機(jī)的效果
在這節(jié)主要模擬隨機(jī)抽一張牌并隨機(jī)翻其中一面。主要通過【區(qū)間隨機(jī)數(shù)】來達(dá)成這效果。

https://www.geogebra.org/m/cghqamfq
為了讓整個(gè)方案更有些拓展性,先設(shè)定三個(gè)滑動(dòng)條來控制三類牌的數(shù)量,分別是 noo, nox, nxx ,另還有個(gè) nTotal= noo+nox+nxx 。
noo?=?滑動(dòng)條(0,5,1)
nox?=?滑動(dòng)條(0,5,1)
nxx?=?滑動(dòng)條(0,5,1)
nTotal?=?noo+nox+nxx
接著利用? 【randCard =?區(qū)間隨機(jī)數(shù)(1,nTotal)】 從這些牌,隨機(jī)抽取 1 張,?并用?【HT =?區(qū)間隨機(jī)數(shù)(1,2)】來決定其哪一面。
#?建立三類牌?{1,1}?表示?2O,?{1,2}?表示?OX,?{2,2}?表示?XX
C1={1,1}
C2={1,2}
C3={2,2}
#隨機(jī)從?n?張排選個(gè)數(shù),再判斷它的樣式是?C1,C2,C3 哪一個(gè)
randCard?=??區(qū)間隨機(jī)數(shù)(1,nTotal)
resC?=?If(randCard?<=?noo,?C1,?randCard<=noo+nox,C2,C3)
#?決定翻開的面
翻開的面
HT?=?區(qū)間隨機(jī)數(shù)(1,2)
resF?=?resC(HT)
resB?=?resC(3-HT)
建立一個(gè)【按鈕】[抽牌],寫下如下腳本,讓每次點(diǎn)按時(shí),更新 randCard, HT 的值,產(chǎn)生隨機(jī)的效果。
noo?=?滑動(dòng)條(0,5,1)
nox?=?滑動(dòng)條(0,5,1)
nxx?=?滑動(dòng)條(0,5,1)
nTotal?=?noo+nox+nxx
接著利用? 【randCard =?區(qū)間隨機(jī)數(shù)(1,nTotal)】 從這些牌,隨機(jī)抽取 1 張,?并用?【HT =?區(qū)間隨機(jī)數(shù)(1,2)】來決定其哪一面。
#?建立三類牌?{1,1}?表示?2O,?{1,2}?表示?OX,?{2,2}?表示?XX
C1={1,1}
C2={1,2}
C3={2,2}
#隨機(jī)從?n?張排選個(gè)數(shù),再判斷它的樣式是?C1,C2,C3 哪一個(gè)
randCard?=??區(qū)間隨機(jī)數(shù)(1,nTotal)
resC?=?If(randCard?<=?noo,?C1,?randCard<=noo+nox,C2,C3)
#?決定翻開的面
HT?=?區(qū)間隨機(jī)數(shù)(1,2)
resF?=?resC(HT)
resB?=?resC(3-HT)
建立一個(gè)【按鈕】[抽牌],寫下如下腳本,讓每次點(diǎn)按時(shí),更新 randCard, HT 的值,產(chǎn)生隨機(jī)的效果。
randCard??=?區(qū)間隨機(jī)數(shù)(1,nTotal)
HT?=?區(qū)間隨機(jī)數(shù)(1,2)
四、顯示隨機(jī)抽牌的過程
當(dāng)有了隨機(jī)抽牌的結(jié)果,接著就是如何將結(jié)果顯示。其中,為了顯示過程中有隨機(jī)變換的效果,可利用滑動(dòng)條讓他動(dòng)態(tài)變化。

https://www.geogebra.org/m/mmgyhbwx
先設(shè)定顯示抽牌結(jié)果的區(qū)域 CardF, CardB 。再利用 resFB 與 【如果】的配合來顯示隨機(jī)抽牌的結(jié)果。
CardF?=?多邊形((-1,0),(-3,0),(-3,3),(-1,3))
CardB?=?多邊形((1,0),(3,0),(3,3),(1,3))
resFT?=?如果(resF==1,"O","X")
resBT?=?如果(resB==1,"O","X")
為了呈現(xiàn)抽牌的效果,可增加個(gè)滑動(dòng)條 slrand 來讓顯示的過程不斷變換,并且將 slrand 的 [重復(fù)] 設(shè)定為"遞增(一次)"。
slrand?=?滑動(dòng)條(0,32,1)
resF?=?取余(resC(HT)+slrand,2)
resB?=?取余(resC(3-HT)+slrand,2)
同時(shí)對(duì)[抽牌] 的按鈕的腳本作如下修改,并設(shè)定一個(gè)【復(fù)選框】(blB) 來讓另一面卡片要經(jīng)切換才能顯示結(jié)果。
randCard??=?區(qū)間隨機(jī)數(shù)(1,nTotal)
HT?=?區(qū)間隨機(jī)數(shù)(1,2)
賦值(slrand,0)
賦值(blB, False)
啟動(dòng)動(dòng)畫(slrand,True)

五、記錄統(tǒng)計(jì)結(jié)果
這一段主要通過一個(gè)按鈕來記錄O,X 出現(xiàn)的次數(shù),并用【條形圖】來顯示結(jié)果。

https://www.geogebra.org/m/rgshvjkd
為了記錄O,X 出現(xiàn)的次數(shù),建立兩個(gè)變數(shù) nO, nX 來作記錄,并用個(gè)條形圖來顯示這結(jié)果。?
nO = 0
X = 0
條形圖({1,2},{nO,nX},0.7)
新增一個(gè)【按鈕】(記錄)來記錄正反面出現(xiàn)的次數(shù)。
賦值(nX,?如果(resB==0,nX+1,nX))
賦值(nO,?如果(resB==1,nO+1,nO))
新增一個(gè)【重置】來將 nX nO 的結(jié)果歸為 0。
賦值(nX, 0)
賦值(nO, 0)
六、思考與討論
請(qǐng)用滑動(dòng)桿設(shè)更換 OO,OX,XX 的張數(shù),并思考在不同張數(shù)時(shí),抽到一面為 O 時(shí),另一面也是 O 的幾率。
相關(guān)鏈接
【Bili】https://www.bilibili.com/video/bv1bK4y1t7U5
【GGB】https://www.geogebra.org/m/rgshvjkd