gpt4 book ai didi

prolog - Prolog 中的密码求解器

转载 作者:行者123 更新时间:2023-12-01 13:02:06 24 4
gpt4 key购买 nike

我必须解决一个看起来像这样的密码:

ABC / DEF = 0.GHGHGH...

其中变量的长度可能不同。重复也可能不同(如 0.XYZXYZ...)。我写了一段代码,我认为它可以工作,但它没有:

cryp(A,B,C) :-
mn(A, X),
mn(B, Y),
mn(C, Z),
Z = X/Y.

mn([], 0).
mn([H|T], W) :- D is 10, mn(T, W1), length(T, D), P is 10^D, W is W1 + H*P.

我将其执行为 crypt([A,B,C], [D,E,F], [G,H])。我认为它至少会解决 ABC/DEF = GH 只是为了有工作解决方案的任何部分,但它不起作用。

即使对于一个示例输入,我也不知道如何去做。我不知道如何表示 0.GHGHGH....

编辑:mn/2 用于将数字列表转换为数字 ([1,2,3] -> 123)。

最佳答案

这里是 clp(fd)-way

 ?- use_module(library(clpfd)).
true.

?- Vars=[A,B,C,D,E,F,G,H], Vars ins 0..9, A#\=0, D#\=0, ((10*A + B)*10+C)*99 #= ((10*D+E)*10+F)*(10*G+H),all_distinct(Vars),forall(label(Vars),format('~w~n',[Vars])).
[1,0,8,2,9,7,3,6]
[1,0,8,3,9,6,2,7]
[1,3,0,2,8,6,4,5]
[1,3,0,4,9,5,2,6]
[1,3,8,2,9,7,4,6]
[1,3,8,5,0,6,2,7]
[1,6,0,4,9,5,3,2]
[1,8,0,3,9,6,4,5]
[1,8,0,4,9,5,3,6]
[2,0,4,3,9,6,5,1]
[2,5,9,4,0,7,6,3]
[2,8,4,3,9,6,7,1]
[2,8,7,4,5,1,6,3]
[2,8,7,6,9,3,4,1]
[2,9,0,6,3,8,4,5]
[3,1,0,4,9,5,6,2]
[3,1,0,6,8,2,4,5]
[3,6,0,4,9,5,7,2]
[3,6,0,7,9,2,4,5]
[3,8,0,4,9,5,7,6]
[4,0,8,5,6,1,7,2]
[4,0,8,7,9,2,5,1]
[4,9,3,5,6,1,8,7]
[5,0,4,6,9,3,7,2]
[5,0,4,7,9,2,6,3]
[5,1,8,6,9,3,7,4]
[5,7,4,6,9,3,8,2]
[5,7,4,9,0,2,6,3]
[5,9,4,7,2,6,8,1]
[6,8,0,9,3,5,7,2]
[7,5,6,9,2,4,8,1]

关于prolog - Prolog 中的密码求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com