假如我国“单挑”整个北约,胜算有多大?能打的比俄军更好吗?
140 2025-04-24
问题:
一个袋子有白球5个,蓝球8个,
(1)抽一个看其颜色扔掉;
(2)继续抽,若跟上次不同放入袋中,继续(1);若相同扔掉,继续(2);
问最后一个白球概率。
---------------------------我是罪恶的分割线---------------------
其实可以用递推,先从简单开始,设f(x,y)表示x个白球y个蓝球的时候最后一个是白球的概率。我们知道,如果连续两个颜色相反,则可以用递推了。
我们知道,由于对称性,
f(x,y)+f(y,x)=1\\
f(x,0)=1,f(0,y)=0,这是显然的;
另外,设g(x,y)是上次抽到白球时最后一个是白球的概率,则有
g(x,y)=\frac{x}{x+y}g(x-1,y)+\frac{y}{x+y}f(x,y)\\
h(x,y)是上次抽到蓝球时最后一个是白球的概率,则有:
h(x,y)=\frac{x}{x+y}f(x,y)+\frac{y}{x+y}h(x,y-1)\\
我们有:
h(x,y)+g(y,x)=h(y,x)+g(x,y)=1\\
\begin{equation} \begin{split} f(x,y)&=\frac{x}{x+y}g(x-1,y)+\frac{y}{x+y}h(x,y-1)\\ &=\frac{x}{x+y}g(x-1,y)+\frac{y}{x+y}(1-g(y-1,x)) \end{split} \end{equation}
我们可以模拟一下:
n <- 8
m <- 8
f <- matrix(NA, nrow=n, ncol=m)
g <- matrix(NA, nrow=n, ncol=m)
for (i in 1:m)
f[1,i] <- 1/(i+1)
for (i in 1:n)
f[i,1] <- i/(i+1)
for (i in 1:m)
g[1,i] <- i/(i+1)*f[1,i]
g[1,1]=1/4
for (i in 2:n)
g[i,1] <- i/(i+1) *g[i-1,1]+1/(i+1)*f[i,1]
for (x in 2:n) {
for (y in 2:x) {
if (is.na(g[x-1,y]) || is.na(g[y-1,x]))
stop("Error!")
f[x,y] = x/(x+y)*g[x-1,y]+y/(x+y)*(1-g[y-1,x])
if (y<=n && x<=m) f[y,x] = 1-f[x,y]
g[x,y] = x/(x+y)*g[x-1,y]+y/(x+y)*f[x,y]
if (y<=n && x<=m) g[y,x] = y/(x+y)*g[y-1,x]+x/(x+y)*f[y,x]
}
}
结果为:
中间为了防止计算出错所以有个输出错误信息的。结果表示没有出错。然后我们需要看的是(5,8)这一个数:
f[5,8]=0.4743748
之前算错了,谢谢网友指正