如何计算a^b^c mod p?

2023-12-03

我正在尝试计算一些正整数 a,b,c,p 的 a^b^c mod p。一种可能的(也是显而易见的)方法是使用快速模幂,它将运行在O(log(b^c))=clog(b)。虽然我不介意这里的效率,但这种方法的明显缺点是您需要一个显式的二进制表示b^c这本身就已经是指数级的了。

所以对我来说问题是如果我不能代表b^c作为二进制表示,有没有办法可以计算a^b^cmod p 来自二进制表示a,b, and c?


(a^b^c) mod p = (((a^b) mod p)^c) mod p

所以你可以做

modpow(modpow(a,b,p),c,p);

其中所有操作数结果和子结果都是普通整数。作为modpow您可以通过求模平方来使用幂p像这儿:

  • 模块化算术和 NTT(有限域 DFT)优化

请注意,这些是利用特定选定的属性进行了一些优化p所以你需要改变线路

if (DWORD(d)>=DWORD(p)) d-=p;

into

d%=p;

[例子]

(2^3^5) % 6 = 
(8  ^5) % 6 =
  32768 % 6 = 2

(((2^3)%6)^5) % 6 = 
((   8 %6)^5) % 6 = 
(    2    ^5) % 6 =
    32        % 6 = 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算a^b^c mod p? 的相关文章

  • .NET 的符号数学

    我正在寻找 NET 框架的符号数学库 我看过Math net 但它还不是可用的 您知道是否还有其他图书馆存在吗 这可能有点过分了 但你可以和数学 http www wolfram com products mathematica index
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • 获取一条线与地平线的角度

    我想知道如何获得线 A B 与水平轴 X 的角度 SO 中的其他问题仅在两条线之间进行此操作 我知道我总是可以绘制第二条线 A C 并计算 但我想知道是否有更快的方法 编辑 我非常确定我没有进行过早的优化 您可以使用atan为了那个原因 a
  • 小数纬度/经度的最大长度 度?

    地球表面一度纬度和经度的最大长度是多少 以公里或英里为单位 但请注明 我不确定我是否说得足够清楚 让我重新表述一下 众所周知 地球不是一个完美的圆 赤道 或厄瓜多尔 纬度 经度变化 1 0 可能意味着一个距离 而两极的相同变化可能意味着另一
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • 如何使用NSDecimalNumber?

    我正在构建一个需要对金钱进行计算的应用程序 我想知道如何正确使用 NSDecimalNumber 特别是如何从整数 浮点数和双精度数初始化它 我只发现它很容易使用 decimalNumberWithString 方法 这 initWith
  • 几何:找到两点之间特定距离的点

    这类似于这个问题 https stackoverflow com questions 328107 how can you determine a point is between two other points on a line se
  • 如何将时间间隔划分为不同长度的部分?

    我有一个从 0 到t 我想把这个区间分成一个以2 25 2 25 1 5为周期的累积序列 方法如下 input start 0 stop 19 output sequence 0 2 25 4 5 6 8 25 10 5 12 14 25
  • 为什么 Convert.ToInt32(1.0/0.00004) != (Int32)(1.0/0.00004)

    为什么这段代码http ideone com YRcICG http ideone com YRcICG void Main double a 0 00004 Int32 castToInt Int32 1 0 a Int32 conver
  • 如何在Python中获得更精确的十进制值[重复]

    这个问题在这里已经有答案了 from math import sqrt a 1e 8 b 10 c 1e 8 x1 b sqrt b 2 4 a c 2 a x2 b sqrt b 2 4 a c 2 a print x1 format x
  • 如何计算具有较大中间值的总和

    我想计算 for n m两个值都是 1000 以内的整数 最终结果是一个不大于 1000 的数字n但中间值对于 python 来说太大了 无法处理 你怎么解决这个问题 我将函数定义如下 from scipy misc import comb
  • 在 C/C++ 中除了使用 % (模数)之外还有其他选择吗?

    我曾经在某处读到 模数运算符在小型嵌入式设备 例如没有整数除法指令的 8 位微控制器 上效率低下 也许有人可以证实这一点 但我认为差异比整数除法运算慢 5 10 倍 除了保留计数器变量并在 mod 点手动溢出到 0 之外 还有其他方法可以做
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 转换 google.maps.Point 中的 (x, y) 像素坐标

    我试图根据我的 x y 像素坐标 当然还有地图选项 例如缩放和中心 找出 LatLng 为了做到这一点 我发布了另一个question https stackoverflow com questions 25219346 how to co
  • 空序列的算术平均值是多少?

    免责声明 不 我没有找到任何明显的答案 这与我的预期相反 在寻找代码示例时 算术平均值 我可以通过谷歌找到的前几个例子似乎是这样定义的 空序列生成的平均值为0 0 eg here https rosettacode org wiki Ave
  • JavaScript 或 IEEE-754 中的舍入怪癖?

    我在一个单元测试中遇到了一个奇怪的问题 我在 JavaScript 中得到了意外的舍入结果 2 005 toFixed 2 produces 2 00 2 00501 toFixed 2 produces 2 01 最初我怀疑这只是 Web
  • 多个点之间的最短路线

    我需要找到多个点之间的最短路线 假设我有以下四点 var startPoint new Point 1 1 var pointsToGoPast new List
  • 将大数字转换为字母(然后再转换回来)

    是否有一个术语来描述将大数字存储为字母的想法 例如 假设我有 相对较小的 数字 138201162401719 并且我想将字符数缩小到尽可能少的字符数 我知道这无助于节省磁盘空间 英文字母表中有 26 个字母 但我将它们算作 25 个 因为
  • javascript的随机实现在各种浏览器中的可信度如何?

    我想做一些关于 javascript 和加密的实验 我很好奇随机函数的实现是如何不可预测的 有人做过硬测试吗 显然 浏览器有能力生成强随机性 对于 ssl 问题是它们是否赋予 javascript 相同的强度 一般来说 随机函数在加密方面并
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半

随机推荐

  • 画布中的框架不会扩展以适应画布

    我不知道为什么这行不通 我一定错过了一些东西 因为我可以使单个框架扩展以适合画布 但我无法使框架内的框架扩展以适合画布 我已经为此奋斗了几个小时 我觉得这是显而易见的事情 我期待里面的标签NoteFrame展开以填充框架 NoteFrame
  • node.physicalBody.joints 向下转型错误

    以下代码给出了一个错误 物理关节数组似乎具有 PKPhysicsJoint 类 有人知道如何在 Swift 中迭代关节吗 The 文档确实说物理Body joints应该返回一个SKPhysicsJoint数组 import SpriteK
  • R Shiny - 通过列排序禁用数据表中的特定行

    下面的应用程序包含一个数据表iris启用行选择的数据集 我想专门禁用前 3 行的选择 我可以使用发布的解决方案来做到这一点here 当表在应用程序启动时初始化时 该解决方案工作正常 但是 当您对列上的行进行排序时 例如在Species按降序
  • 如何在android中地图上两个位置之间的路径上移动图像

    我正在开发一个项目 其中显示两个随机位置以及它们之间的路径 我使用过this教程来完成 现在我想显示从一个位置到另一个位置的移动图像 我已经在这两个位置上放置了标记 而且我已经将位置保存在数组列表中 我发现了一些类似的帖子 但无法解决我的问
  • set根据操作命令在按钮组中选择特定的 jradiobutton

    我想根据actionCommand 特定jradiobutton的名称 在按钮组中设置选择特定的jradiobutton 可以使用 setSelected true 来完成 例如 JRadioButton rabbitButton new
  • 如何在 Android 中滚动“无限”宽视图?

    我正在考虑如何在 android 中滚动 无限 类似比例的控件的替代方案 简单的想法是在每次滚动移动时重新绘制整个视图 但不知怎的 这似乎不是正确的方法 可以预先绘制内容 但我不知道首先应该将视图设置为多宽 以及当用户滚动到视图末尾时会发生
  • 如何访问.net中的activemq统计插件

    我正在尝试访问 activemq 统计信息http activemq apache org statisticsplugin html in c 这就是我到目前为止所拥有的 我无法得到消费者的回复 我可以在监控网站上查看队列的计数增加 pu
  • 无法从 pywinauto 导入:导入错误:导入 win32ui 时 DLL 加载失败:动态链接库 (DLL) 初始化例程失败

    安装 pywinauto 后 我尝试运行这个简单的代码 from pywinauto import Application filename notepad exe app aplication Application start file
  • SQL 中具有多列的数据透视表

    我有这个数据 ID Month PRODUCT VALUE 1 VALUE 2 1234 1 a 34 12 1233 2 B 54 1245 3 c 23 42 1236 4 d 12 8 1238 1 a 56 5 1239 2 B 4
  • 如何在解构赋值语法中使用特殊字符(如连字符)? [复制]

    这个问题在这里已经有答案了 我很好奇为什么这看起来不可能 const a b special one a 1 b 2 special one 3 output gt missing after property id 在未来的 ES 版本中
  • 计算双精度数组中所有元素的总和

    我在使用数组进行递归时有点困惑 有人可以纠正我的错误吗 新更新 根据所需的问题 某些行无法编辑 double sum of array double x int size static double sum lt can be edit i
  • 如何创建多个本地通知

    我试图在我的应用程序中创建多个本地通知 但由于某种原因 只有第一个通知弹出 其余的不起作用 这是我的代码 我有一个名为克里亚警报 它负责创建通知 在该类中我有以下方法 void setarNotificacao NSInteger quan
  • 我可以通过通话事件启动我的应用程序吗?

    当用户通过 iPhone 拨打电话时 如何启动我的应用程序 为此 应用程序是否需要始终作为服务运行 或者即使它关闭 我也可以从调用中运行它吗 在 iOS 中无法启动应用程序来响应呼叫
  • 在返回向量的函数上使用 Numpy Vectorize

    numpy vectorize接受函数 f a gt b 并将其转换为 g a gt b 当a and b是标量 但我想不出为什么它不能与 b 作为标量一起使用的原因ndarray或列表 即 f a gt b 和 g a gt b 例如 i
  • CNUI 错误 设置了选择谓词,但委托未实现 contactPicker:didSelectContact:

    我尝试使用新的iOS 9 0CNContactPickerViewController在 Objective C 中选择联系人 我设置了委托并实施CNCContactPickerDelegate方法 import ContactsUI im
  • IE 11 兼容性视图

    我的网站在 IE11 中无法正常工作 我们发现它由于 XSLTProcessor 和 XPathEvaluator 而被破坏 因为 IE 不再支持它们 我做了一些研发 发现 IE9 和 IE10 也不支持它 但我的网站在 IE9 和 IE1
  • 如何在 WKWebView 中禁用 iOS 11 和 iOS 12 拖放功能?

    长按图片或链接WKWebView在 iOS 11 和 12 上启动拖放会话 用户可以拖动图像或链接 我怎样才能禁用它 我确实找到了一个涉及方法调配的解决方案但也可以在 WKWebView 中禁用拖放 而无需任何调整 注意 请参阅下面针对 i
  • Java 类链接解析步骤或初始化是否会导致加载其他解析的类?

    我正在浏览 JVM 规范文档和 JLS 了解 java 中的类加载机制 这是我的理解 首先 当主类被要求加载时 它 查看该类的二进制表示是否已经存在 是否已加载 如果没有 类加载器将从中加载类文件 磁盘 联动步骤 验证 准备和解决 初始化
  • 如何绑定CallScreeningService?

    我想获取通话详细信息并阻止通话 如果需要 由于 TelecomManager endCall 方法已被弃用 并且根据文档 建议使用 CallScreeningService https developer android com refer
  • 如何计算a^b^c mod p?

    我正在尝试计算一些正整数 a b c p 的 a b c mod p 一种可能的 也是显而易见的 方法是使用快速模幂 它将运行在O log b c clog b 虽然我不介意这里的效率 但这种方法的明显缺点是您需要一个显式的二进制表示b c