農場有100隻雞圍成一圈,每隻雞把旁邊的雞啄了一下,雞啄左邊右邊是隨機,不被啄的雞的數量的期望是多少?
農場有100隻雞,安靜地圍成一個圈,忽然每隻雞都把旁邊的雞啄了一下,如果雞啄左邊或右邊是隨機的,不被啄的雞的數量的期望是多少?
答案是25,謝 @再無歲月可回頭 邀.
----------------------------------------------------
我上次看到這道題還是100個人圍一圈然後開槍還能活幾個...
隨機考察一個人,左邊槍斃他的概率是50%,右邊槍斃他的概率也是50%.
所以他的存活概率就是1-(50%)^2=25%.
所有人都是這樣,根據期望的可加性.
最後活下來的就是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&
srand((unsigned)time(NULL));
for (int i = 0; i != 100000; i++)
{
vector&
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?