農場有100隻雞圍成一圈,每隻雞把旁邊的雞啄了一下,雞啄左邊右邊是隨機,不被啄的雞的數量的期望是多少?

農場有100隻雞,安靜地圍成一個圈,忽然每隻雞都把旁邊的雞啄了一下,如果雞啄左邊或右邊是隨機的,不被啄的雞的數量的期望是多少?


答案是25,謝 @再無歲月可回頭 邀.

----------------------------------------------------

我上次看到這道題還是100個人圍一圈然後開槍還能活幾個...

隨機考察一個人,左邊槍斃他的概率是50%,右邊槍斃他的概率也是50%.

所以他的存活概率就是1-(50%)^2=25%.

所有人都是這樣,根據期望的可加性.

Eleft[sum X_i
ight]=sum E[X_i]

最後活下來的就是100*.25=25

模擬結果也支持這個答案.


確定這題翻譯的沒問題?


25。

不被啄 = 1 - 左邊或右邊啄 = 1 - (1 - 左邊且右邊啄),

每隻雞被左邊啄幾率0.5,右邊0.5,

1 - (1 - sqare(0.5)) = 0.25

#include"iostream"
#include"vector"
#include"time.h"
using namespace std;

int main()
{
vector& results;
srand((unsigned)time(NULL));
for (int i = 0; i != 100000; i++)
{
vector& chickens(100, false);
int judge = rand() % 2;
if (judge)
{
chickens[1] = true;
}
else
{
chickens[99] = true;
}
judge = rand() % 2;
if (judge)
{
chickens[0] = true;
}
else
{
chickens[98] = true;
}
for (auto iter = chickens.begin() + 1; iter != chickens.end() - 1; iter++)
{
judge = rand() % 2;

if (judge)
{
*(iter + 1) = true;
}
else
{
*(iter - 1) = true;
}
}
double count = 0;
for (auto iter = chickens.begin(); iter != chickens.end(); iter++)
{
if (!*iter)
{
count++;
}
}
results.push_back(count);
}

double sum = 0;
for (auto it = results.begin(); it != results.end(); it++)
{
sum += *it;
}
sum /= 100000;
cout &<&< sum; system("pause"); return 0; }


前面的答主貌似理解錯題主的意思了,我來回答下。

100這個數字有點大,我們先考慮一個簡單的框架,把這個數字削減為6。

首先考慮,可能有多少只雞會被啄。

最多的話:每隻雞都啄他的左邊或者右邊,那就是6隻都被啄。

最少的話:每隻雞最多被啄兩次,要想被啄的總數量最少,那麼就要有儘可能多的雞被啄兩次。但由於是6隻雞圍成一個圈的限制條件,我們可以發現最多只能有兩隻雞被啄兩次,所以最少的情況就是有4隻被啄。

最後一部就是分別算4,5,6的概率(期望)值:

總情況有2*2*2*2*2*2=2的六次方=64種;

X=4:3*2*2+6*2*2=36種;

X=5:6*2*2=24種;

X=6:4種;

則其概率分別為:

X=4:9/16;

X=5:3/8;

X=6:1/16;

然後拓展為100的話,也可以用類似的思想來算。不過數據太龐大了就是。


推薦閱讀:

如何在KTV或者酒吧中吹牛,就是搖色子,所向披靡?
如果X服從標準正態分布,那X的絕對值符合什麼分布?
有N個水果,每次取n個出來洗,洗完放回去打亂,平均需要洗幾次能全洗完?
一根1米長的繩子,隨機切N刀,變成(N+1)根繩子,為什麼最短的一根繩子長度的期望是1/(N+1)^2?

TAG:數學 | 概率論 | 隨機過程 |