Vigenere 解密和取模
Posted
技术标签:
【中文标题】Vigenere 解密和取模【英文标题】:Vigenere decryption and modulo 【发布时间】:2017-03-16 12:52:51 【问题描述】:我正在查看***上的 Vigenère 加密/解密算法,我想知道哪种方法是最有效/正确的:
return a % b
和:
if a < 0
return a += b
else
return a
当:
-b <= a <= b
或者编译后可能是等价的?
谢谢你赐教:)
【问题讨论】:
【参考方案1】:IMO,这种纳米优化没什么意义,因为您需要数百万个字符的文本才能有任何可察觉的差异。
与其他操作相比,模运算和条件分支都“昂贵”,并且它们非常依赖于处理器架构。因此,唯一知道的方法是进行基准测试,充分注意在现实条件下获得可重现的结果(这有点矛盾)。
这就是说,请注意 % 不会为负参数实现真正的模运算,如果您假设如此,您将得到错误的结果。
【讨论】:
好吧,反正我不是在寻找优化,因为我知道它只会对我的代码产生很小的影响。但是你所说的%
实现是我所期待的。所以这显然取决于语言。我在 Haskell 中尝试过,%
似乎产生了预期的结果,但我会保留if statement
谢谢:)
@MathersMax:或者,(a + c) % b
也可以,其中c
是一个精心挑选的常数。以上是关于Vigenere 解密和取模的主要内容,如果未能解决你的问题,请参考以下文章