抽卡(概率論)
思路:反向考慮,
第個卡池抽不到卡的概率爲
因爲每個事件是獨立事件,
所以:
對於除法取餘,就是求逆元,這裏用費馬小定理即可。
時間複雜度:
附上個獨立事件和概率公式:
AC代碼:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5,mod=1e9+7;
#define mst(a) memset(a,0,sizeof a)
int a[N],b[N];
ll ksm(ll a,ll n){
ll ans=1;
while(n){
if(n&1) ans=ans*a%mod;
a=a*a%mod;
n>>=1;
}
return ans;
}
ll inv(ll a,ll b){
return a*ksm(b,mod-2)%mod;
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=0;i<n;i++) scanf("%d",&b[i]),b[i]=a[i]-b[i];
ll ans=1;
for(int i=0;i<n;i++)
ans=ans*inv(b[i],a[i])%mod;
printf("%lld\n",(mod+(1-ans))%mod);
return 0;
}