【题目大意】
一个口袋里装了t种颜色的球,第i种颜色的球的数目为ai,每次随机抽一个小球,然后再放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)}$,得证。
【代码实现】
先咕着,等下来写
原文地址:https://www.cnblogs.com/THWZF/p/10699975.html