寶劍公升級問題

2022-04-29 13:12:08 字數 1305 閱讀 8586

問題在這裡:每使用乙個寶石,有50%的概率會成功讓寶劍公升一級,50%的概率會失敗。如果寶劍的級數大於等於5的話,那麼失敗會使得寶劍降1級。如果寶劍的級數小於5的話,失敗沒有效果。問題是:期望用多少個寶石可以讓一把1級的寶劍公升到9級?

記從i級的寶劍公升級到i+1級的寶劍需要的寶石數目為e(i)。由於每個級別的公升級可以單獨分開看,則e(1) + e(2) + e(3) + ... + e(8)的結果即是所需要的寶石數。

個人覺得解決這個問題需要用到極限的思想和遞迴的思想。讓我們先從1級公升2級說起

e(1) = 0.5 * 1(失敗0次,成功1次) + 0.5 ^ 2 * 2(失敗1次,成功1次)+ 0.5 ^ 3 * 3 (失敗2次,成功1次)+ ...                  式(1)

這是單純考慮1級公升級到2級所有可能性的思路,並疊加這些可能性。從這個式子可以判定,e(1)背後的這個數列求和是個收斂的確定值。那麼單純使用一顆寶石公升級的情況如何呢? 

有0.5的概率成功,此時只需一顆寶石;還有0.5的概率失敗,此時不會降級,問題仍然是從1級公升級到2級,需要的寶石1 + e(1)顆。也就是:

e(1) = 0.5 * 1 + 0.5 * (e(1) + 1)                       式(2)

解這個等式,可以得到e(1) = 2.

注意這裡我們用到的邏輯,首先證明e(1)存在且唯一,接著帶入單純一顆寶石的情況,發現這顆寶石公升級失敗後,所面臨的公升級問題仍然和最開始的一樣。於是就可以從式(2)直接求出e(1)的結果

在類似的情況裡,e(2) = e(3) = e(4) = e(1) = 2

到e(5)時,新出現的問題是公升級失敗後會退回到4級。

仍然考慮所有可能性的思路,

e(5) = 0.5 * 1(失敗0次,成功1次) + 0.5 ^ 3 * c(3, 2) * 3 (失敗1次,成功2次) + 0.5 ^ 5 * c(5, 3) * 5 (失敗2次,成功3次)+ ...                  式(3)

其中c(n, k)是組合數求解公式。直接計算這個表示式是困難的。但我們所知道的是e(5)存在且唯一。

考慮單純使用一顆寶石公升級的情況,有0.5的概率成功,需要寶石為1顆;有0.5的概率失敗,這本身會消耗一顆寶石,然後需要從4級公升到6級,也就是e(4) + e(5):

e(5) = 0.5 * 1 + 0.5 * (1 + e(4) + e(5))              式(4)

求解式(4)後有,e(5) = 4.

同理可求得,e(6) = 6, e(7) = 8, e(8) = 10

總共所需寶石數期望為e(1) + e(2) + ... + e(8) = 36顆

important 至高無上的寶劍

如上圖,不同 的兩個樣式,第乙個樣式設定了font weight,第二個沒有,瀏覽器會把它疊加在一起,即瀏覽器會把各個零散的整合成乙個整體。第乙個樣式color red,第二個樣式color blue,瀏覽器會讓後者覆蓋前者,最終結果還是color blue。覆蓋的預設規則是後者覆蓋前者,但是又乙個...

寶劍鋒從磨礪出

斷斷續續又面試了幾家公司,大概的意思都和第一家公司差不多,都需要前期的培訓。我有些失落了,之前把工作想得太簡單,以為我只要工資要求一點,找工作應該沒什麼大問題。出來過後才知道現實的殘酷,都說大學生不好找工作,現在算是真正體會到了。加之,我自身本就沒什麼實力,面試又總是碰壁,愈來愈加深了我想去達內培訓...

pip公升級問題

公升級後 pip 執行報錯 modulenotfounderror no module named pip 可以執行 python m ensurepip 修復 python m pip install upgrade pip 再公升級 如果執行pip 報其他錯誤,可以重新來一次 先用python ...