观察这个计算tta的函数发现,这个函数的值域是,而且多次运行发现这个函数的结果非常随机。 那么随机一个字符串得到任意一个结果的概率均为。 那么对于这种加密算法给出他的结果求一个原串,显然可以采用爆破的方法。 随机出个长度为8的字符串进行爆破,若函数完全随机的情况下,1009个值域全部爆破完成的概率可以用以下算法求解: 令表示一共有个值域,使用了个字符串进行爆破,共有个值域被爆破的概率。可以得到转移方程: #include <bits/stdc++.h> int main() { int c = 20000, m = 1009; std::vector<std::v...