Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Help! Арифметические ребусы


Автор: EagleThePredator 25.11.2005, 16:30
smile Подскажите, пожалуйста быстрый способ решения арифметических ребусов типа VOLVO+FIAT=MOTOR. Где одинаковым буквам соответствуют одинаковые цифры, разным - разные.
Мой алгоритм таков:
  • 1. Я нахожу все возможные подстановки цифр в последовательности
    VOLFIATMR.
  • Т.е. 012345678, 012345679, 987654321 и т.д.
    2. Затем просто проверяю выполнение равенства.
Но этот алгоритм для данного ребуса выполняется порядка 20 сек. Мне же необходимо чтобы программа укладывалась в 5 сек.
И еще, я кстати, отбрасываю такие посл-ти, в которых первые цифры нули, или если сумма последних(O+T) неравна R.

Автор: mvdr 25.11.2005, 22:39
Цитата(EagleThePredator @ 25.11.2005, 16:30)
VOLVO+FIAT=MOTOR.

1) создание списка переменных (все неповторяющиеся буквы) V O L F I A T M R
2) проверка главноего условия O + T = R
3) дальше перебором. Если условие 2 прошло, то

Автор: EagleThePredator 29.11.2005, 08:19
smile Cпасибо! Только сейчас прочитал. Постараюсь реализовать. Я как-то про условие O+T=R забыл, а ведь оно может облегчить алгоритм. Еще раз спасибо!

Автор: mvdr 29.11.2005, 20:15
EagleThePredator, не за что. Это на скорую руку.
Если что - пиши.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)