计算 a*a mod n 且不溢出

2024-04-25

I need to calculate a*a mod n but a is fairly large, resulting in overflow when I square it. Doing ((a % n)*(a % n)) % n doesn't work because (n-1)2 can overflow. This is in C++ and I'm using int64_t

Edit:

示例值:a = 821037907258,n = 800000000000,如果对其进行平方,则会溢出。

我正在使用 DevCPP,并且我已经尝试过让大整数库工作但无济于事。

Edit 2:

不,这些数字没有规律可循。


如果您不能使用大整数库,并且您没有本机uint128_t(或类似),您需要手动执行此操作。

One option is to express a as the sum of two 32-bit quantities, i.e. a = 232b + c, where b contains the 32 msbs, and c contains the 32 lsbs. Squaring is then a set of four cross-multiplications; each result is guaranteed to fit into a 64-bit type. You then do the modulo operation as you recombine the individual terms (carefully taking into account the shifts needed to realign everything).

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

计算 a*a mod n 且不溢出 的相关文章

  • 实体框架一对多关系

    我的 EF 查询大约需要 3 秒才能获取 10 个玩家 因为它获取另一个表的所有 500k 行 而不是我需要的少数行 这是玩家实体 namespace RocketLeagueStats Database Entities Table pl
  • 如何管理返回到 QML 的动态分配的 QObject 的生命周期?

    我有这个代码 QVariant componentFromCode QString code QQmlComponent component new QQmlComponent engine engine gt setObjectOwner
  • ASP MVC4 - 通过视图模型传递列表以查看

    我有一个模型人物 其中包括出生日期等字段 我想将所有人的列表以及每个人的计算年龄传递给视图 因此 视图模型 public class vm PersonList public Person Person get set public int
  • 是否有与 SQL Server newsequentialid() 等效的 .NET

    我们使用 GUID 作为主键 您知道默认情况下它是集群的 将新行插入表中时 它将插入表中的随机页 因为 GUID 是随机的 这会对性能产生可衡量的影响 因为数据库始终会分割数据页 碎片 但我使用顺序 GUID 的主要原因是因为我希望将新行插
  • lambda 始终返回“1”

    有这样的代码 include
  • 将信号/槽(QObject)添加到 QGraphicsItem:性能受到影响?

    我想将信号 槽添加到 QGraphicsItem 以便我可以从另一个线程访问 QGraphicsItemObjects 我知道有两个选项 使用 QGraphicsObject 或从 QObject 和 QGraphicsItem 继承 使用
  • C# 中的 DateTime.Parse 抛出异常

    我不知道为什么抛出异常 这是工作代码 DateTime Parse 1 12 2012 12 00 00 AM 这是抛出异常的一个 DateTime Parse 1 13 2012 12 00 00 AM 抛出的异常是 格式异常 包括此消息
  • 从文本文件中读取所有内容 - C

    我正在尝试从文本文件中读取所有内容 这是我写的代码 include
  • 相当于一个允许重复键的排序字典

    我需要一个数据结构 可以通过与对象关联的浮动键对对象进行排序 从低到低的在前 问题是键代表成本 所以经常有重复 我不关心这一点 因为如果两个具有相同的成本 我只会抓住第一个 因为它没有区别 问题是编译器抱怨 是否有一种数据结构的行为方式相同
  • “上下文模式”的这种实现看起来不错吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有多个处理单元可能存在于一个数组中 每个处理单元都有自己的参数 我想使用以下方式传达每个处理单元的参数上下文模式在它被建议作为另一个问题的解答 ht
  • 使用工作表作为数据源的 VSTO Excel 的简单示例

    我想我遇到了 最简单的答案是最难找到的答案 的情况 而且我还没有遇到过任何搜索能够以直接的方式给我这个答案 这是为了Excel 2010 and VS 2010在现有 VSTO C 项目中 我有一个 Excel 工作表 其中包含 4 列数据
  • 自定义文件属性

    我需要遵循 在我的申请中 我有文件 需要随时签入和签出的文件 当我从应用程序中签出文档时 我需要将自定义属性添加到文件中 以便稍后在签入文档时可以识别它 我尝试使用以下代码使用 DSOFile 中的 OleDocumentPropertie
  • 使用 PrimarySearcher.FindAll() 时出现内存泄漏

    我也有一个使用插件和应用程序域长时间运行的服务 并且由于使用目录服务而出现内存泄漏 请注意 我正在使用 system directoryservices accountmanagement 但据我了解 它使用相同的底层 ADSI API 因
  • gcc总是做这种优化吗? (公共子表达式消除)

    作为示例 假设表达式sys gt pot atoms item gt P kind mass在循环内求值 循环只改变item 因此表达式可以简化为atoms item gt P kind mass通过将变量定义为atoms sys gt p
  • 如何使用实体框架更新特定记录的一个字段?

    我想要更新一个名叫 Pejman 的人的家庭情况 这是我的对象类 public class Person public int Id get set public string FirstName get set public string
  • 在 Qt C++ 中使用多个键

    我正在构建 坦克 游戏 我使用关键事件在地图上运行我的坦克 实际上我当时只能使用一把钥匙 但我需要有能力去完成任务 同时向上和离开 这是我的单键事件代码 switch event gt key case Qt Key Up if ui gt
  • 奇怪的 MSC 8.0 错误:“ESP 的值未在函数调用中正确保存...”

    我们最近尝试将一些 Visual Studio 项目分解为库 并且在测试项目中一切似乎都编译和构建得很好 其中一个库项目作为依赖项 然而 尝试运行该应用程序给我们带来了以下令人讨厌的运行时错误消息 运行时检查失败 0 ESP 的值未在函数调
  • C++ 中的 Ofstream 数组

    我想要在我的项目中使用 41 个输出文件来在其上写入文本 首先创建一个字符串数组list为了命名这些输出文件 然后我尝试定义一个 ofstream 对象数组并使用list命名它们 但我收到此错误 outfile cannot be used
  • 捕获 System.Exception 总是不好的做法吗?

    请考虑下面的代码 它抛出三个不同的异常 即 System Configuration ConfigurationErrorsException System FormatException and System OverflowExcept
  • C# 泛型中的通配符等效项

    假设我有一个通用类 如下所示 public class GeneralPropertyMap

随机推荐

  • Azure Pipelines 将 xUnit InlineData 视为一项测试而不是多项测试

    在我们的 Azure Pipelines 管道中 我们有采用 InlineData 参数的 NET Core xUnit 测试方法 测试运行程序运行所有测试方法 并在其控制台输出中正确报告每个 InlineData 实例作为测试运行 但是
  • 如何编写非默认排序规则的脚本并跳过默认排序规则的显式脚本?

    在SSMS 2008 R2中 我创建了一个表 aTest Albnian varchar 10 Dflt varchar 10 在 SSMS 表设计器中 两列都有排序规则 在 列属性 表设计器 下 我将 Albnian 列的排序规则更改为非
  • 如何从 Pylons 中的 URL 获取多个同名参数?

    因此 不幸的是 我发现自己处于需要修改现有 Pylons 应用程序以处理提供多个同名参数的 URL 的情况 像下面这样的东西 域 端口 操作 c 1 v 3 c 4 通常 参数是这样访问的 from pylons import reques
  • 为什么这个类库dll没有从app.config获取信息

    我正在开发一个自定义 HttpHandler 为此我编写了一个 C 类库并编译为 DLL 作为其中的一部分 我有一些目录位置 我不想在应用程序中硬编码 所以我尝试将其放入我之前使用过的 app config 中 在此之前 只需构建应用程序配
  • 如何检测 Google 应用内结算订单已取消或退款?

    我已经红色了很多帖子和谷歌文档 但我仍然不清楚如何判断应用内购买已退款 我小心翼翼地红了应用内结算 v3 不检测退款 https stackoverflow com questions 13861625 in app billing v3
  • joomla 中的全文查询

    如何使用 joomla 对象构建全文搜索查询 我一直在尝试 但没有成功 db JFactory getDBO query db gt getQuery true query gt select query gt from unis subj
  • 使用python opencv从zip加载图像

    我能够成功地从 zip 加载图像 with zipfile ZipFile test zip r as zfile data zfile read test jpg how to open this using imread or imde
  • 如何在fabricJS中通过鼠标选择被覆盖的对象?

    我正在尝试开发一种方法来选择分层在下面并 完全 被其他对象覆盖的对象 一种想法是选择顶部对象 然后通过doubleclick向下穿过层层 这就是我现在得到的 var canvas new fabric Canvas c fabric uti
  • Swift - NSDate - 删除部分日期

    我有一个以下格式的日期2015 02 22T20 58 16 0000 为了将其转换为 NSDate 我找到了以下解决方案 var df NSDateFormatter df dateFormat yyyy MM dd T HH mm ss
  • 数组仅添加重复值

    当我打印数组的内容时 它似乎会使用最后输入的命令覆盖每个元素 typedef struct int argc char argv 10 char myArray 80 size t size Command 内部主要 Command cmd
  • 谷歌采访:找到多边形的最大和[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 给定一个多
  • 如何在 SQL Server 中生成并手动插入唯一标识符?

    我正在尝试在表中手动创建一个新用户 但发现如果代码不抛出异常 就不可能生成 UniqueIdentifier 类型 这是我的例子 DECLARE id uniqueidentifier SET id NEWID INSERT INTO db
  • vue/vuetify 模态模式或最佳实践设计

    在我正在开发的应用程序中 我们有很多模态 每个模态包含少量数据 通常是 2 3 个字段 有时是复选框 列表等 问题是当组件关闭时如何从内部重置 销毁组件 造成这种情况的原因有两个 1 不必清除每个模式上的各个数据字段 2 当第二次打开模式时
  • Eclipse(在 Ubuntu 上)没有 jsp、html 和其他 Web 文件模板

    我使用 Synaptic Package Manager Ubuntu 9 10 安装了 Eclipse 但是 我的 Eclipse 没有任何 HTML 模板 在 新建 对话框中 或 JSP 模板 我该如何修复它 以便我在那里拥有一些 HT
  • Python根据for循环索引创建变量[重复]

    这个问题在这里已经有答案了 我正在尝试为 for 循环的每次迭代创建变量 对于范围 10 内的 i x i abc 这样我就可以得到 x1 x2 x3 x4 x10 都等于 abc 有人知道该怎么做吗 谢谢 你不应该这样做 将你的值存储在d
  • 使用 Base64 和 JSON 上传大图像

    我正在使用此功能将图像上传到服务器JSON 为此 我首先将图像转换为NSData然后到NSString using Base64 当图像不是很大时 该方法工作正常 但当我尝试上传 2Mb 图像时 它会崩溃 问题是服务器没有收到我的图像 即使
  • 使用 Appcompat v7 的抽屉式导航 - ?android:attr 标签的问题

    我在我的项目中使用操作栏和导航抽屉 使用 appcompat v7 和 v4 我已经添加了 appcompat v7 和资源 以下是我的导航抽屉列表的文本视图 直接取自位于以下位置的 Android 示例应用程序 创建抽屉式导航 http
  • C#:通过反射检索和使用 IntPtr*

    我目前正在编写一些代码 这些代码反映了从调用本机 dll 中编组回来的结构 某些结构包含指向以 null 结尾的指针数组的 IntPtr 字段 这些领域需要特殊处理 当反映结构时 我可以识别这些字段 因为它们是由自定义属性标记的 以下说明了
  • ant-找不到符号@Test

    我正在尝试编译以下仅包含一个函数的类 公共类测试注释 Test public void testLogin System out println Testing Login 当我将文件作为 JUNIt 运行时 它可以工作 但是当我尝试从 b
  • 计算 a*a mod n 且不溢出

    I need to calculate a a mod n but a is fairly large resulting in overflow when I square it Doing a n a n n doesn t work