首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最快模指数

最快模指数
EN

Code Golf用户
提问于 2013-10-04 15:45:49
回答 1查看 3.1K关注 0票数 5

所面临的挑战是在任何开放源码中编写代码,这些代码可以在linux上使用,这是您选择的执行模块化幂运算的语言。输入将是两个随机选择的2048位正整数,数字x和y和2048位素数z。

代码语言:javascript
复制
def pow_mod(x, y, z):
    n = 1
    while y:
        if y & 1:
            n = n * x % z
        y >>= 1
        x = x * x % z
    return n

代码应该接受一个文件,其中的三个数字分别放在不同的行上,并将结果输出到标准输出。当然,您也不能使用任何库进行模幂运算。

在我的计算机上运行速度最快的代码平均超过100次。

对于那些想要精确计时的人来说,最好的方法可能是计时代码实际出现在您提供的代码中,而您的代码只需重复100次(没有欺骗:)。这避免了启动管理费用方面的任何问题。

EN

回答 1

Code Golf用户

回答已采纳

发布于 2013-10-09 06:01:39

C++/asm

在我的笔记本电脑上运行了大约7毫秒。与GMP相距不到2的因子,后者是针对此任务进行的重大优化。

使用蒙哥马利还原快速计算模块缩减。使用python脚本生成x86程序集来执行2048位操作(乘法、添加等)大量的直线代码。

代码大约270行,有点大,粘贴在一个答复框中。下载它这里

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/12744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档