Yuce's Blog

Cognitive dissonance is yoga for the brain.*

SEND + MORE + MONEY

2007-05-27

Finding valid and distinct integers for digits S, E, N, D, M, O, R and Y in the equation SEND + MORE = MONEY is a classical constraint pro­gram­ming problem. Here's the slightly modified version of the sample program at Wikipedia constraint pro­gram­ming entry for SWI-Prolog using clp library:

:- use_module(library('clp/bounds')).

sendmore(Digits) :-
   Digits = [S,E,N,D,M,O,R,Y],
   Digits in 0..9,
   S #\= 0,
   M #\= 0,
   all_different(Digits),
                1000*S + 100*E + 10*N + D
      
continue.

send more money, sendmory, constraint programming, prolog