维吉尼亚解密和取模
Vigenere decryption and modulo
我正在查看维基百科上的 Vigenère encryption/decryption 算法,我想知道哪种方法最 efficient/correct 介于:
return a % b
和:
if a < 0
return a += b
else
return a
当:
-b <= a <= b
或者编译后就等价了?
谢谢赐教:)
IMO,这种极小的优化没有什么意义,因为在出现任何可察觉的差异之前,您需要长达数百万个字符的文本。
与其他运算相比,模运算和条件分支都是 "costly",它们非常依赖于处理器架构。因此,唯一知道的方法是进行基准测试,在现实条件下充分注意并获得可重现的结果(这有点矛盾)。
这就是说,请注意 % 不会为负参数实现真正的模运算,如果您这样假设,您将得到错误的结果。
我正在查看维基百科上的 Vigenère encryption/decryption 算法,我想知道哪种方法最 efficient/correct 介于:
return a % b
和:
if a < 0
return a += b
else
return a
当:
-b <= a <= b
或者编译后就等价了?
谢谢赐教:)
IMO,这种极小的优化没有什么意义,因为在出现任何可察觉的差异之前,您需要长达数百万个字符的文本。
与其他运算相比,模运算和条件分支都是 "costly",它们非常依赖于处理器架构。因此,唯一知道的方法是进行基准测试,在现实条件下充分注意并获得可重现的结果(这有点矛盾)。
这就是说,请注意 % 不会为负参数实现真正的模运算,如果您这样假设,您将得到错误的结果。