概率
定义:一件事发生的机率。
期望
定义:$$E(x)=\sum_i^n p_i \times i$$
例题
单选错位
考虑相邻两题答案相同的概率应为:
\[\frac{\min(a_i,a_{i+1})}{a_i\times a_{i+1}}
\]
可以理解为两道题都蒙对的概率是 \(\frac{1}{a_i} \times \frac{1}{a_{i+1}}\) ,而两个选项相同的情况只会出现在选项较少的题目中,为 \(\min(a_i,a_{i+1})\) ,故答案如上式,化简得答案为:
\[\sum_{i=1}^n \frac{1}{\max(a _i,a_{i+1})}
\]
特别的,当 \(i=n\) 时 \(\frac{1}{\max(a_1,a_n)}\) 。
代码如下:
#include<iostream>
#include<iomanip>
using namespace std;
const int N=1e7+10;
int n,A,B,C;
int a[N];
double ans=0;
int main(){scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);for (int i = 2; i <= n; i++)a[i] = ((long long) a[i - 1] * A + B) % 100000001;for (int i = 1; i <= n; i++)a[i] = a[i] % C + 1;for(int i=1;i<=n;i++){if(i==n){ans+=1.0/(1.0*max(a[1],a[n]));}else{ans+=1.0/(1.0*max(a[i],a[i+1]));}}cout<<fixed<<setprecision(3)<<ans;return 0;
}