как определить число, присвоенное каждой букве в криптарифе? - PullRequest
1 голос
/ 15 мая 2011

У меня есть задание, которое должно решить криптарифм.Но я не могу понять алгоритмы, которые я видел в Интернете.Кто-нибудь может объяснить, как это сделать простыми словами?

Ответы [ 2 ]

1 голос
/ 21 июня 2013

Можно решить эту проблему с помощью генетического алгоритма, вот решение с использованием GA https://github.com/pauloremoli/cryptarithmetic

1 голос
/ 15 мая 2011

В общем случае большинство алгоритмов удовлетворения ограничений являются двухэтапным процессом, где за фазой угадывания (или ветвления) следует фаза дедуктивности, при которой можно найти как можно больше назначений без угадывания.(Вспомните, например, судоку)

Пример:

  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

Когда вы зашли в тупик, Возврат

...