使用SML破解凯撒密码

时间:2010-09-19 10:27:08

标签: sml modulo

我应该破解凯撒密码。 我必须声明一个函数crack : int * int -> int,以便(k, c)属于int类型,其中k是解密文本,c是加密文本,调用crack(k, c)将返回密钥(mod 10)n,这是ck所需的。 一个例子是调用crack(20458790, 64892134)将返回4。

如果c不是k的正确编码,则该功能无需实际工作。

我希望我在这里足够清楚。我理解这里的实际作业(我有k和c,我需要n),但我不知道如何在我的代码中显示它。

1 个答案:

答案 0 :(得分:1)

你没有具体说明当第二个数字不是第一个数字的凯撒编码时应该发生什么,所以我假设没关系。

所以为了获得,你只需要从第一个数字中取任何数字(最方便的是最后一个),然后从第二个数字相同位置的数字中减去该数字。

换句话说,您可以这样做:(c mod 10 - k mod 10) mod 10