/* Solution correspondant à
la première modélisation */
send(LD):-
/* On définit les variables et leurs domaines */
LD=[S,E,N,D,M,O,R,Y],
fd_domain(LD,0,9),
fd_domain([S,M],1,9),
/* On pose les contraintes
*/
fd_all_different(LD),
1000*S+100*E+10*N+D
+ 1000*M+100*O+10*R+E
#= 10000*M+1000*O+100*N+10*E+Y,
/* On énumère
les solutions */
fd_labeling(LD).
/* Solution correspondant à
la deuxième modélisation */
send2(LD):-
/* On définit
les variables et leurs domaines */
LD=[S,E,N,D,M,O,R,Y],
fd_domain(LD,0,9),
fd_domain([S,M],1,9),
fd_domain([R1,R2,R3],0,1),
/* On pose les contraintes
*/
fd_all_different(LD),
D+E #= Y + 10*R1,
R1+N+R #= E + 10*R2,
R2+E+O #= N + 10*R3,
R3+S+M #= O +10*M,
/* On énumère
les solutions */
fd_labeling(LD).