Queuing
我们假设有 个窗口,
个人(小心我这里和题目里面的定义是反的😂)。我们先直接给出答案公式:
它的含义就是枚举第 号人前有多少个人,然后用权值去乘以这个权值出现的概率。其实去枚举权值是一样的,就是把上面的
做了一个整体替换,但是感觉这么写更好算。可以对比两种枚举方式发现枚举前面有多少人计算起来更加简单。
我们接下来就对式子进行展开:
原式
括号里右边依据二项式定理有:
那么我们现在考虑化简括号里面的左边:
这里我们发现 的时候对答案没有贡献,可以从
开始(这样做后面化简更简单,大家可以不这么做往下走试试,最后发现还是要舍去
的情况),那么这里我们注意到此时有限制条件了
我们用 进行整体替换:
我们最终将化简后的括号里面的左右部分代入:
原式 (n≥2)
(n≥2)
那么现在讨论 的情况,答案自然就是
,发现也符合上述推导的公式,那么我们也就不用再特殊考虑了,既答案就是
#include<bits/stdc++.h> using namespace std; int main() { int n, m; cin >> m >> n; printf("%.8f", 1.0 * (n - 1) / m + 1); }