首页 >> 大全

华东理工月赛 - 站军姿(概率公式)

2023-10-18 大全 30 作者:考证青年

题目链接:点击查看

题目大意:在圆上随机生成n个点,求n个点在同一侧的概率

题目分析:做这个题的时候感觉是数论,从网上搜了一下题面,搜到了一个算法,没看懂证明,只是看懂了式子(式子谁看不懂。。),大佬博客:,公式

_华东理工大学概率论期末考试_华东理工大学概率论答案第一册

然后就尝试实现,因为涉及到了求逆元,恰好模又是一个素数,所以直接用费马小定理求一下逆元,实现一下就好

就好了?

这个题的细节很多,下面一一列举:

初始时n可能比1e9+7要大,所以需要对n取模题目要求的是P/Q的最简情况,所以需要同除gcd化简当n对1e9+7取模后,设a=n9+7,对原公式求2的幂时还是需要求n-1次方,而不是,求a-1次方

上代码吧,这个破题因为一开始没对n取模,WA了六七发

#include
#include
#include
#include
#include 
#include 
#include
#include
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;const int mod=1e9+7;LL qpow(LL a,LL b)
{LL ans=1;while(b){if(b&1){ans=ans*a%mod;}b>>=1;a=a*a%mod;}return ans;
}LL gcd(LL a,LL b)
{return b==0?a:gcd(b,a%b);
}int main()
{int w;cin>>w;while(w--){LL n;scanf("%lld",&n);LL a=n%mod;//这里记得取模LL temp=qpow(2,n-1);LL d=gcd(a,temp);a/=d;temp/=d;temp=qpow(temp,mod-2);//费马小定理求逆元	printf("%lld\n",a*temp%mod);}return 0;
}

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了