Boss掉落物品問題

2022-02-07 10:18:42 字數 1462 閱讀 1960

原問題是這樣的:

玩某遊戲中,乙個boss死亡之後會隨機掉落物品,一共有四種物品可能會掉落,boss每次死亡之後都會掉落一種物品,四種物品掉落的概率完全相同。

現在需要收集其該boss掉落的四件物品,完成某項任務。問:平均要殺死該boss多少次才能湊滿全部4個物品。

該問題實際上就是求boss掉落全部四個物品的數學期望,數學期望為值和概率之積的全和。

即s=4*p(4) + 5*p(5) + … + n*p(n);

問題的關鍵就在於如何求解p(n);

很明顯,p(n)的值為剛好在第n次殺死boss的時候掉落出最後一件物品,之前的n-1次都是掉落其他3種物品,這樣才符合題意。

於是:其中ps表示「挑出的3種物品在前n-1個事件發生時候的出現的可能排列數」,他必須滿足1、三種物品必須全部出現;2、不能重複計算出現過的情況;

於是討論這個子問題:前n-1個事件中,恰好出現三種物品的排列數

有三種可能:

1、全部是一種物品:   共3種排列

2、恰好由兩種物品構成: 共

種3、恰好有三種物品構成 :

第三種情況恰好就是我們子問題的解

所以:然後利用分項錯開計算。計算無窮小數列的值。

最後可得:期望值為8.33左右

附上**:

**

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

//乙個boss掉4個裝備,每殺死次boss都只掉1個,

//4個裝備掉的機率相等,問同一玩家要湊齊4個裝備平均要殺多少次boss?

namespace

boss

return

false;}

static

intsim()

;inti =

0;while

(test(a))

returni;}

static

void

boss1()

sum

/=count;

summ

+=sum;

}console.writeline(

"平均結果是:;

", summ /10

);}static

void

boss3()

console.writeline(

"計算和:

", s);

}static

void

main(

string

args)}}

雞蛋掉落問題

leetcode 887.雞蛋掉落 include include using namespace std intsupereggdropbs int k,int n 這一段改用二分查詢,而不從1列舉到i int start 1,end i,mid int res int max 可能存在找不到的情...

關於雞蛋掉落問題

運用動態規劃原理,相當於打 public intsupereggdrop int k,int n 當樓層為0時,f為0 for int i 0 i1 i dp 0 i 0 當雞蛋個數為0時,f 0 for int i 0 i1 i dp i 0 0 當乙個雞蛋的時候,f為給的樓層數 for int ...

Daily Practice 雞蛋掉落問題

示例 1 輸入 k 1,n 2 輸出 2解釋 雞蛋從 1 樓掉落。如果它碎了,我們肯定知道 f 0 否則,雞蛋從 2 樓掉落。如果它碎了,我們肯定知道 f 1 如果它沒碎,那麼我們肯定知道 f 2 因此,在最壞的情況下我們需要移動 2 次以確定 f 是多少。示例 2 輸入 k 2,n 6輸出 3示例...