2011-03-11 98 views
1

我有什么,我认为是一个密码(这不是功课,只是我想我会尝试通过编码的乐趣,解决一个挑战)是:检查每个可能的字母组合的密码

“为了试图解决它,我想遍历字母表中每个字母的密码赋值的每一个可能的组合(以明显的暴力方式),但是,为了解决这个问题,我需要对密码赋值的所有可能组合进行迭代。我无法想出一个优雅的方式去做这件事。一旦我得到密码分配的当前迭代,我想我会根据密码转换密文,然后将第一个3个字母的单词与3个字母的单词表进行比较,并将最后两个单词与一个5个字母的单词表进行比较,如果所有三个都是实际的单词,我会让它将结果打印出来。这应该给我一个合理的出发点清单,能够消除不正确的结果。如果任何人有关于如何执行迭代密码的任何想法,我将不胜感激。非常感谢,

皮博迪

回答

0

你可以有26 循环。

好的。我在开玩笑。


一个明显的,但效率不高版本的伪代码:

for i = 0 - 26^26-1 
    /* a = i/26^25 % 26 
    ... 
    z = i/26^0 % 26 */ 
    if all deciphered words are in the word list 
    print 
    end if 
end for 

顺便说一句,我不认为这是在你的问题破译如说,正确的方式,因为我不能找到一个例子double在英语句子中出现同一个单词。

+0

嗨但丁,谢谢你的建议!你能否详细说明双重存在问题?我错过了你想要去的地方。谢谢! – Peabody 2011-03-11 18:26:25

+0

@Peabody,我的意思是,我们几乎不会一再说一句话。一个相反的例子是:http://en.wikipedia.org/wiki/James_while_John_had_had_had_had_had_had_had_had_had_had_had_a_better_effect_on_the_teacher – 2011-03-12 06:10:30

相关问题