我有以下一段代码不符合我的要求。如何提高此算法的效率?
def cipher(plaintext, arr):
import math
ciphered = []
for letter in plaintext:
ciphered.append(math.pow(ord(letter)-65,arr[1]%arr[0]))
return ciphered
那些获得到math.pow的参数是142和35。然后,它使用的是结果找到模块221然而,结果它给我的是206.0当结果,它应该给我是12.即使当我在wolfram alpha中找到这个结果时,结果是12.我认为这里的问题与溢出问题有关。但是我不知道如何解决它
给我们一些'plaintext'和'arr'的样本值,以及期望的输出。 –
提高效率并没有给你正确的答案是两件不同的事情。一般来说,程序员会告诉你先让它工作,然后优化算法......无论如何,只要提高它的效率,要考虑的一件事就是取消调用导入数学的操作。导入一个库需要很多时间;如果你需要调用500,000次这样的函数,那将是非常低效的。相反,你可以在函数中使用Python中原生的简单操作和对象来实现你想要的功能..无论如何应该让你开始 –
其中一个结束括号应该在'%arr [0]'之前,而不是之后。或者你可以用''替换'%',以使用快速模幂运算。 –