博客
关于我
牛牛和牛可乐的赌约
阅读量: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/

    你可能感兴趣的文章
    Mysql学习总结(37)——Mysql Limit 分页查询优化
    查看>>
    Mysql学习总结(38)——21条MySql性能优化经验
    查看>>
    Mysql学习总结(39)——49条MySql语句优化技巧
    查看>>
    Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
    查看>>
    Mysql学习总结(40)——MySql之Select用法汇总
    查看>>
    Mysql学习总结(41)——MySql数据库基本语句再体会
    查看>>
    Mysql学习总结(42)——MySql常用脚本大全
    查看>>
    Mysql学习总结(43)——MySQL主从复制详细配置
    查看>>
    Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
    查看>>
    Mysql学习总结(45)——Mysql视图和事务
    查看>>
    Mysql学习总结(46)——8种常被忽视的SQL错误用法
    查看>>
    Mysql学习总结(48)——MySql的日志与备份还原
    查看>>
    Mysql学习总结(49)——从开发规范、选型、拆分到减压
    查看>>
    Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
    查看>>
    Mysql学习总结(50)——Oracle,mysql和SQL Server的区别
    查看>>
    Mysql学习总结(51)——Linux主机Mysql数据库自动备份
    查看>>
    Mysql学习总结(52)——最全面的MySQL 索引详解
    查看>>
    Mysql学习总结(53)——使用MySql开发的Java开发者规范
    查看>>
    Mysql学习总结(54)——MySQL 集群常用的几种高可用架构方案
    查看>>
    Mysql学习总结(55)——MySQL 语句大全再温习
    查看>>