博客
关于我
牛牛和牛可乐的赌约
阅读量:119 次
发布时间:2019-02-27

本文共 1145 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要计算牛牛投掷骰子时输的概率。牛牛投掷m次n面的骰子,每次投掷都必须出现n点,才能赢。输的概率是至少有一次投掷不是n点。我们可以通过快速幂和模逆元来高效地计算这个概率。

方法思路

  • 问题分析:输的概率是1减去赢的概率。赢的概率是每次投掷都成功的概率,即(1/n)^m。因此,输的概率为1 - (1/n)^m。
  • 快速幂计算:使用快速幂算法来计算大数的幂取模。
  • 模逆元计算:使用费马小定理来计算模逆元,因为1e9+7是一个质数。
  • 计算步骤
    • 计算n的逆元。
    • 计算逆元的m次幂。
    • 计算输的概率,并调整负数情况。
  • 解决代码

    #include 
    using namespace std;typedef long long ll;const int MOD = 1e9 + 7;ll poww(ll a, ll b, int mod) { ll ans = 1; ll base = a; while (b) { if (b & 1) ans = (ans * base) % mod; base = (base * base) % mod; b >>= 1; } return ans;}ll inv(ll a, int mod) { return poww(a, mod - 2, mod);}int main() { ll t; read(t); for (int _ = 0; _ < t; ++_) { ll n, m; n = read(); m = read(); if (n == 1) { cout << 0 << endl; continue; } ll inv_n = inv(n, MOD); ll inv_pow = poww(inv_n, m, MOD); ll res = (1 - inv_pow + MOD) % MOD; cout << res << endl; }}

    代码解释

  • 快速幂函数poww用于快速计算大数的幂取模,适用于处理大指数问题。
  • 模逆元函数inv使用费马小定理计算模逆元,适用于质数模数。
  • 主函数:读取输入数据,处理每个测试用例,计算逆元和幂,最后输出结果。
  • 特殊情况处理:当n=1时,直接输出0,因为每次投掷都只能得到1点,无法输。
  • 通过这种方法,我们可以高效地计算牛牛输的概率,并在大数情况下快速得到结果。

    转载地址:http://ywzb.baihongyu.com/

    你可能感兴趣的文章
    localhost:5000在MacOS V12(蒙特利)中不可用
    查看>>
    mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
    查看>>
    Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
    查看>>
    MangoDB4.0版本的安装与配置
    查看>>
    Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
    查看>>
    mapping文件目录生成修改
    查看>>
    MapReduce程序依赖的jar包
    查看>>
    mariadb multi-source replication(mariadb多主复制)
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    Member var and Static var.
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
    查看>>
    Memcached:Node.js 高性能缓存解决方案
    查看>>
    memcache、redis原理对比
    查看>>
    memset初始化高维数组为-1/0
    查看>>
    Metasploit CGI网关接口渗透测试实战
    查看>>
    Metasploit Web服务器渗透测试实战
    查看>>
    Moment.js常见用法总结
    查看>>
    MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
    查看>>
    mxGraph改变图形大小重置overlay位置
    查看>>