algorithm - 为什么我们应该在 GP 求和公式中使用模乘逆?
问题描述
问题: https ://www.codechef.com/ISCC2018/problems/T24 我提到的代码: https ://www.codechef.com/viewsolution/19340066
在这个问题中,我们应该找到几何级数的总和。在cpp中使用几何级数公式的求和时,为什么需要找到K-1的模乘逆?为什么我们不能直接除以K-1?
几何级数:k+(k k)+(k k*k)+.....直到 n 项(其中 k 是某个整数) 公式:(第一项 *(Cd 的 n - 1 次幂))/(Cd -1)。Cd指几何级数的共同差。
解决方案
如果使用高精度整数,除以 K-1 将给出正确答案。
问题是 K 的 N 次方会非常大。K 可以达到 10 亿,N 可以达到 10 亿,因此 K 的 N 次方可以是 90 亿位数字。
但是,只要求以素数为模的结果,因此可以通过以该素数为模进行所有计算来避免高精度整数。
推荐阅读
- php - 在同一文件中调用第二个函数时出现 Mysqli 错误
- python - 在python中格式化大查询结果
- node.js - 尝试部署流星应用程序。运行 NPM INSTALL 时失败
- python - Pandas Timedelta 将小数小时添加到现有时间戳
- swift - 如何隐藏按钮标题但仍然可以使用 sender.currentTitle 调用它?
- django - Django 只验证超级用户
- tensorflow - .pb SavedModel 和 .tf SavedModel 有什么区别?
- android - 在活动 xml 或 newInstance() 工厂方法中声明的 Android 片段?
- node.js - 带有 cookie 的节点 http2 请求
- javascript - 如何将一些文本放入另一个文本节点的第一行末尾(p)