誰多誰少;及死亡小島分析

紫鳳發表於2013-07-31

今日面試題:誰多誰少

盒子A有10個紅球,盒子B有十個綠球。進行如下的操作:

隨機從A中拿三個球放入B中;

隨機從B中拿三個球放入A中

問題是,在哪一個盒子中,會出現一個顏色的球比另一個顏色的球更多?該如何分析?

死亡小島分析:

原題

一個小島,表示為一個N×N的方格,從(0,0)到(N-1, N-1),一個人站在島上,位置(x, y),他可以上下左右走,一步一個格子,他選擇上下左右的可能性是一樣的。當他走出小島,就意味著死亡。假設他要走n步,請問他死亡的概率有多大?請寫出求解程式碼。

分析

遇到這樣的問題,就試著走幾步好了。當一個人在(x,y)的時候,假設他此時,死亡的概率為p(x,y,n),然後,他有四種選擇,而且是可能性相同,就是說,選擇上下左右的概率都是1/4:

選擇上邊,死亡的概率是多少呢?此時位置為(x, y-1),剩餘的步數為n-1,則概率為p(x, y - 1, n - 1)

選擇下邊同理:概率為p(x, y + 1, n - 1)

選擇左邊同理:概率為p(x - 1, y, n - 1)

選擇右邊同理:概率為p(x + 1, y, n - 1)

則,p(x,y,n)=(p(x, y - 1, n - 1) + p(x, y + 1, n - 1) + p(x - 1, y, n - 1) + p(x + 1, y, n - 1))/4,可以表達出遞迴的形式。

這個題目,看似比較複雜,但是嘗試走一步,之後,寫出遞迴表示式了,就比較簡單了。遞迴終止的條件,只要x或者y,滿足了小於0或者大於n-1的時候,p=1。

程式碼如下:

enter image description here

本文來自微信:待字閨中,2013-07-27釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。

相關文章