我有一个需要解决密码的任务。但我无法理解我在互联网上看到的算法。有人可以用简单的话解释如何做到这一点吗?
答案 0 :(得分:1)
作为一般情况,大多数约束满足算法是一个两步过程,其中猜测(或分支)阶段之后是演绎阶段,其中尽可能多的分配被发现而没有猜测。 (例如,想想Sudoku)
示例:
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
答案 1 :(得分:1)
使用遗传算法可以解决这类问题,这是一个使用GA的解决方案https://github.com/pauloremoli/cryptarithmetic