【发布时间】:2015-04-15 05:29:26
【问题描述】:
所以我得到了一段代码,我在上面尝试了让它运行得更快的方法......因为执行大约需要 40 秒:
for i in range (1, len(pk), 2):
for j in range (2, len(pk), 2):
b = random.randrange(2 ** Const.ALPHA)
sum += (b * pk[i] * pk[j])
我尝试了线程...它运行速度并不快。 我尝试将 sum() 与嵌入其中的两个 for 循环一起使用。它也不会跑得更快。
pk 元素是非常大的 int。
现在,len(pk) 等于 162,Const.ALPHA 等于 9。但在未来,它很可能不止于此。
谢谢
PS:顺便说一句,如果你能猜出程序使用这些变量的目的是什么,你就会得到一个 cookie。
【问题讨论】:
-
您是说系统上大约 1600 个循环需要 40 秒?那是 Pentium 1 还是更早的版本?
-
我想说的是显而易见的,但是用 C/C++ 实现它并从 Python 调用它呢? boost.org/doc/libs/1_49_0/libs/python/doc
-
@AshwiniChaudhary 获得了 i7 =)。整数非常非常大
-
@fzqf 然后试试gmpy。
-
@Jack 问题是 C/C++ 本身并不管理大整数。因此,C/C++ 和 Python 之间的互操作性可能会变得复杂。
标签: python c++ loops python-3.x optimization