【发布时间】:2014-05-16 13:54:04
【问题描述】:
我掌握了密码算术和加法的概念,但我不知道如何解决乘法密码算术问题。它只是 TWO*SIX=TWELVE 或类似的东西,没有给出乘法问题的中间附加部分。我在网上找不到任何东西,我已经发现了一些问题的限制,但没有什么可以让我找到一些答案。不知道在哪里问这个,并认为这是最好的地方。
我想知道如何解决一个乘法密码算术问题。
我已经得出结论了:
T W O
* S I X
_________________
T W E L V E
T \= 0 which also means S \= 0
T is 1-6
E is (O*X) mod 10
O or X cannot be 0 or 1 since E has to be different and 0 or 1 gives the same value
as either O or X.
编辑:我使用的是生成和测试方法
solve(T,W,O,S,I,X,E,L,V) :-
X = [T,W,O,S,I,X,E,L,V],
Digits = [0,1,2,3,4,5,6,7,8,9],
assign_digits(X, Digits),
T > 0,
S > 0,
100*T + 10*W + O * 100*S + 10*I + X =:=
100000*T + 10000*W + 1000*E + 100*L + 10*V + E,
write(X).
select(X, [X|R], R).
select(X, [Y|Xs], [Y|Ys]):- select(X, Xs, Ys).
assign_digits([], _List).
assign_digits([D|Ds], List):-
select(D, List, NewList),
assign_digits(Ds, NewList).
【问题讨论】:
-
明确说明您的问题。还要检查这是否不是您要查找的内容:stackoverflow.com/questions/23575795/…
-
我把它放在那里,但我只是想知道如何至少在纸上解决问题。我不知道该怎么做,加法问题很容易。您发布的那个链接是一个附加问题,我理解这些。
标签: math prolog cryptarithmetic-puzzle