《樹莓派開發實戰(第2版)》 2 8 練習

2021-09-23 16:39:48 字數 1419 閱讀 7923

www.manning.com/books/practical-probabilistic-programming上可以找到部分練習的解答。

1.擴充套件hello world程式,新增表示下床的一側(正確或者錯誤)的變數。如果從錯誤的一側下床,問候語總為「oh no, not again!」,如果從正確的一側下床,問候語的邏輯和之前相同。

2.在原始hello world程式中,觀測到今天的問候語是「oh no, not again!」,查詢今天的天氣。現在,觀測相同的證據並在練習1中修改的程式上提出相同的查詢。查詢答案發生了什麼變化?能否直觀地解釋該結果?

3.在figaro中,可以使用**x === z作為如下**的簡寫:

換言之,如果兩個引數的值相等,產生乙個值為true的元素。如果不執行figaro,猜測下面兩段程式生成的結果:

a) val x = flip(0.4)

val y = flip(0.4)

val z = x

val w = x === z

println(variableelimination.probability(w, true))

b) val x = flip(0.4)

val y = flip(0.4)

val z = y

val w = x === z

println(variableelimination.probability(w, true))`

現在,執行figaro程式檢查您的答案。

4.在下面的練習中,您將發現fromrange元素很有用。fromrange有兩個整數引數m和n,生成m~n-1的隨機整數。例如,fromrange(0, 3)生成0、1、2的概率相同。編寫一段figaro程式計算擲兩個骰子得出總數11的概率。

5.編寫乙個figaro程式計算第乙個骰子擲出6時,兩個骰子總數大於8的概率。

6.在「地產大亨」遊戲中,當兩個骰子擲出相同數字時可以多玩乙個回合。如果連續三次出現這種情況,您就會入獄。編寫一段figaro程式計算任何乙個回合中發生這種情況的概率。

7.想象乙個遊戲,您有乙個輪盤和5個面數不同的骰子。輪盤有5個概率相等的結果:4、6、8、12和20。在遊戲中,首先轉動輪盤,然後滾動面數與輪盤結果相同的骰子。編寫乙個figaro程式表現這個遊戲。

a)計算滾動12面骰子的概率。

b)計算擲出數字7的概率。

c)已知擲出的是7,計算滾動的是12面骰子的概率。

d)已知滾動的是12面骰子,計算擲出數字7的概率。

8.現在,修改練習7中的遊戲,輪盤有卡住的趨勢,在連續兩次轉動時停在同乙個結果處。使用與makestreaky類似的邏輯,編寫乙個約束,說明兩次相鄰的轉動得到相同值的概率高於不同值的概率。連續玩該遊戲兩次。

a)計算第二次擲骰子得到7的概率。

b)已知第一次擲骰子得到7,計算第二次擲出7的概率。

《樹莓派開發實戰(第2版)》 1 2 封裝樹莓派

面臨問題 你希望給樹莓派加乙個外殼。解決方案 除非你的樹莓派是作為套件中的一部分購買的,否則它是不帶外殼的。這使得樹莓派比較容易受傷,因為電路板外面有許多裸露的連線部件,所以把樹莓派放到金屬上面的時候,非常容易發生短路。因此,為樹莓派購買某種形式的保護裝置不失為一項明智之舉。如果你將來要用到樹莓派的...

《樹莓派開發實戰(第2版)》 1 3 選擇電源

面臨問題 你需要為樹莓派選擇電源。解決方案 樹莓派對電源的基本電氣規格的要求為提供5v穩壓直流電。至於電源在電流大小方面的要求,這要取決於樹莓派的具體型號以及其連線的外圍裝置。你最好採用一款能夠輕鬆驅動樹莓派的電源,因此電流一般不宜小於700ma。如果你在同乙個賣家那裡購買樹莓派和電源的話,他通常能...

《樹莓派開發實戰(第2版)》 第2章 網路連線

樹莓派開發實戰 第2版 2.0 引言 樹莓派在設計之初,便是要連線到網際網路的。網際網路通訊是它的關鍵功能之一,這給其他各種用途鋪平了道路,例如家庭自動化 web服務 網路監控等。樹莓派既可以使用乙太網線纜 這種情況至少要求是b型樹莓派 聯網,也可以使用usb wi fi無線網絡卡連線網路。樹莓派一...