Luogu P4204 神奇口袋 题解报告

题目传送门

【题目大意】

一个口袋里装了t种颜色的球,第i种颜色的球的数目为a[i],每次随机抽一个小球,然后再放d个这种颜色的小球进口袋。

给出n个要求,第x个抽出的球颜色为y,求满足条件的概率。

【思路分析】

抽出一个球颜色为i的概率设为f[i],球的总数为sum

在第k步时,$f[i]=\frac{a[i]}{sum}$

那么在k+1步就有两种情况:

1.第k步抽中了颜色为i的球,那么此时概率为$\frac{a[i]}{sum}*\frac{a[i]+d}{sum+d}$

2.第k步没有抽中,那么此时概率为$(1-\frac{a[i]}{sum})*\frac{a[i]}{sum+d}$

所以第k+1步时,$f[i]=(1-\frac{a[i]}{sum})*\frac{a[i]}{sum+d}+\frac{a[i]}{sum}*\frac{a[i]+d}{sum+d}=\frac{a[i]*(sum-a[i]+a[i]+d)}{sum*(sum+d)}=\frac{a[i]}{sum}$

由此可得,在任意时刻抽到某一种颜色的小球的概率是不变的,始终为$\frac{a[i]}{sum}$

如果这道题没有条件的话,到这里就可以完美解决了,但是我们还要考虑题目的条件。

这里有一个结论:要求中某一步要取的颜色出现的顺序对概率并没有影响。

假设现在的两个要求中的小球颜色分别为i,j

1.若i在前,概率$P1=\frac{a[i]}{sum}*\frac{a[j]}{sum+d}$

2.若j在前,概率$P2=\frac{a[j]}{sum}*\frac{a[i]}{sum+d}$

显然,$P1=P2=\frac{a[i]*a[j]}{sum*(sum+d)}$,得证。

【代码实现】

先咕着,等下来写

上一篇:Django-路由层


下一篇:Vuejs学习笔记(一)