2011-05-15 43 views
1

我有一個任務需要解決一個cryptarithm。但我不能理解我在互聯網上看到的算法。任何人都可以用簡單的話來解釋如何做到這一點?如何確定分配給密碼中每個字母的數字?

+0

你試過了哪些算法? – 2011-05-15 08:31:52

+0

獲取字符串中所有可能的字符組合,然後計算總和以解決密碼學問題。但是它非常慢 – amiel 2011-05-15 10:42:33

+0

你是否對密文進行了頻率分析? – 2011-05-15 10:45:46

回答

1

作爲一般情況,大多數約束滿足算法是一個兩步過程,其中猜測(或分支)階段後面是演繹階段,其中儘可能多的分配沒有猜測。 (想想數獨,例如)

例子:

S E N D 
    M O R E 
M O N E Y 

First step: guess D=1 (remaining guesses = ...) 

    S E N 1 | D=1 
    M O R E 
M O N E Y 

Guess E = 1 (Remaining guesses = ...) 

    S 1 N 1 | D = 1 | E = 1 
    M O R 1 
M O N 1 Y 

We can now deduce that Y = 2 and that the carry value in the second column is 0 

     0 
    S 1 N 1 | D = 1 | E = 1, Y = 2 
    M O R 1 
M O N 1 2 

當你到達一個死衚衕,backtrack

相關問題