每天一道面試題(1)

2022-05-04 05:48:12 字數 2842 閱讀 4345

2023年 阿里巴巴 筆試題集 第23題

乙個骰子,6面,1個面是 1, 2個面是2, 3個面是3, 問平均擲多少次能使1、2、3都至少出現一次.

這題可以翻譯為,乙個骰子,6面,1個面是 1, 2個面是2, 3個面是3,隨機扔骰子,在第x次時3個數都出現,求這個x的期望(也就是扔無數次,x的平均值是多少)

思路:第一二次肯定不可能出現這種情況

第x(x > 2)次三個都出現的情況分三種(x ^ y 表示 x 的 y 次方)

1:第x次出現 1,那麼前面出現的必然是 2 和 3 ,且至少出現一次

出現1的概率為 1 / 6,前面x-1次不出現1的概率為(1 - 1 / 6) ^ (x - 1),

但是其中包含全是 2 和全是 3 的情況,去掉全 2 的概率 (1 / 2) ^ (x - 1),全部為3的概率(1 / 3) ^ (x - 1),

那麼情況 1 的概率為 ((1 - 1 / 6) ^ (x - 1) - (1 / 2) ^ (x - 1) - (1 / 3) ^ (x - 1)) * (1 / 6)

2:第x次出現2,那麼前面出現的必然是 1 和 3 ,且至少出現一次 同樣,概率為 ((1 - 1 / 3) ^ (x - 1) - (1 / 2) ^ (x - 1) - (1 / 6) ^ (x - 1)) * (1 / 3)

3:第x次出現3,那麼前面出現的必然是 1 和 2 ,且至少出現一次 同樣,概率為 ((1 - 1 / 2) ^ (x - 1) - (1 / 3) ^ (x - 1) - (1 / 6) ^ (x - 1)) * (1 / 2)

p(x)就為上面三種情況的和

那麼,根據期望公式,平均值就等於從x = 3 到 n(無窮)求(x * p(x))的和

以上引用:

這個用組合數學的方法也很強,主要是他求極限的方法:

設在第n次實驗中1、2、3沒有全部出現的事件為xn(n>=3)

在某次拋骰子中 1出現的概率為1/6; 2出現的概率為1/3;3出現的概率為1/2;

p(xn) = (1/6+1/3)n+(1/6+1/2)n+(1/3+1/2)n-(1/6)n-(1/3)n-(1/2)

n  //容斥原理

首先介紹一下指示器隨機變數。

指示器隨機變數為概率與期望之間的轉換提供了乙個便利的方法。給定乙個樣本空間s和事件a,那麼事件a對應的指示器隨機變數i定義為

i(a)=1 如果a發生的話;0 如果a不發生的話。

首先證明以下結論:

拋n次,123沒有全部出現的概率,記為p(n),很容易通過容斥原則求出p(n)。

對p(n)從n=0到無窮求和。即為題目所求的期望。

定義隨機變數x_n=1表示事件「前n次投擲骰子,123沒能全部出現」發生,x_n=0表示這個事件沒發生,即x_n是該事件的指示變數。

令p(n)為「投n次骰子,123沒能全部出現」的概率,即x_n的數學期望為:

e[x_n] = 1*pr[x_n=1]+0*pr[x_n=0]=p(n)

令隨機變數x表示投擲到多少次時,123剛好全部出現過。

最關鍵的一步是發現一下的恒等關係:

x=x_0+x_1+x_2+x_3+......

即x為所有x_n的和,n=0到無窮。

例如:假設投擲到第7次時123剛好全部出現,即x=7,即x_0到x_6都為1,從x_7開始至n無窮,x_n都為0.

我們的目標是求e[x],根據期望的線性,有:

e[x] = e[x_0] + e[x_1] + e[x_2] + e[x_3]+...

注意儘管各個x_n之間並不獨立,但線性期望對於任何隨機變數都是無條件成立的,所以我們總可以輕鬆吧問題化整為零。

前面已經能夠知道e[x_n]=p(n),而且p(n)可以用容斥原理則輕鬆算出。因此所求期望就是所有p(n)的和,n=0到無窮,這是乙個簡單的幾何級數。

p(n)=(1/2+1/3)^n + (1/2+1/6)^n+(1/3+1/6)^n - (1/2)^n-(1/3)^n-(1/6)^n

=(5/6)^n+(2/3)^n-(1/3)^n-(1/6)^n ;(n>=3)

而p(0)=p(1)=p(2)=1;

那麼這個答案應該是

而幾何級數1+q+q^2+q^3+....=1/(1-q)

因此e[x] = 3+f(5/6)+f(2/3)-f(1/3)-f(1/6) = 7.3

f(x) = x^3/(1-x);

l2,l3如最右l1一樣,還可以繼續展開,如下方程所示

根據這個樹狀結構和其中的遞迴關係,這個方程組就是:

l123 = p1 (l23+ 1) + p2 (l13+1) + p3 (l12 + 1) = p1 l23 +p2 l13+ p3 l12 + 1

(以這個l123為例,投擲1的概率是p1而由此得到的結果是需要期待後續2和3各至少出現一次,於是長度期望是l23+ 1,加1是因為投擲了一次,亦即即增進一級)

l23 = p1 l23 +p2 l3+ p3 l2 + 1

l13 = p1 l3 +p2 l13+ p3 l1 + 1

l12 = p1 l2 +p2 l1+ p3 l12 + 1

l1 =p1 ·1 + p2 (l1+1) + p3 (l1 +1) = p2 l1+ p3 l1 + 1

l2 = p1 l2 + p3 l2 + 1

l3 = p1 l3 +p2 l3+ 1

帶入p1=1/6,p2=1/3,p3=1/2即可得到。

引用參考:

每天一道面試題 開篇

先說一下自己寫 每天一道面試題 原因。雖然現在所在的公司對我還是比較重視,但是現在公司的現狀是取消了加班費,加班沒有調休 不論工作日還是週末還是法定節假日 本著能者多勞以及 培養新人 的觀念,我是專案組裡面加班最多的人之一,幾乎每天加班到十一二點,週六才能夠在晚上7點前下班。這種狀態持續了四五個月。...

每天一道面試題 JAVA部分

1 抽象 抽象就是忽略乙個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。2 繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方...

《每天一道筆試題》(1)

上海華為的一道關於指標方面的程式設計題 int a nsize 其中隱藏著若干0,其餘非0整數,寫乙個函式int func int a,int nsize 使a把0移至後面,非0整數移至陣列前面並保持有序,返回值為原資料中第乙個元素為0的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出...