您的编辑/ ide是否强调a++;在此C/C++代码中作为注释的一部分?
int a=1;
//some comment \
a++;
printf("%d\n",a);
Run Code Online (Sandbox Code Playgroud)
那怎么样?
int a=1;
//some comment ??/
a++;
printf("%d\n",a);
Run Code Online (Sandbox Code Playgroud) 假设我想找到谓词的所有解的总和,我可以使用
findall(L, find(L), Sols),
Run Code Online (Sandbox Code Playgroud)
并且只是总结了Sols的成员.
但是如果find(L)有很多(无限的,可能)解决方案,我只想得到它们中的前10个呢?
我希望它可用于B-Prolog和ECLiPSe CLP.
前段时间我为2014年Codeforces愚人节大赛创造了一个问题 - "Feed the Golorp":http://codeforces.com/contest/409/problem/I .请阅读提供的链接上的问题陈述.
这个问题原本是由那些根本不了解Prolog的人解决的.在比赛期间,只有3人设法解决了这个问题 - 使用Java,Python和C++.
主要挑战是了解需要做什么.对于具有一些Prolog经验的人来说,很明显golorp的名字就像?(_-_/___*__):-___>__.定义Prolog谓词一样,并且任务是找到变量的最小值,使谓词满足.有一些细节:再次,请阅读问题陈述.
实际上在理解目标之后解决问题并非如此微不足道.在算法上,任务是根据约束对变量进行拓扑排序.Golorp的名称最长可达1024个字符,因此需要相当高效的算法.
我用Python用正则表达式编写了我的参考解决方案.但在比赛结束后,我开始想知道如何解决Prolog中的问题.
由于只使用Prolog回溯到暴力强迫,golorp的名称可能长达1024个字符,所有可能性看起来都不可行 - 可能需要约束逻辑编程.
如果我可以从不等式中提取所有变量的列表和变量对的列表,我可以解决它.例如在ECLiPSe CLP中:
:- lib(ic).
solve(Vars, Ineqs, Result) :-
Vars :: 0..9,
( foreach((A, B), Ineqs) do
A #< B ),
labeling(Vars),
concat_string(Vars, Result).
[eclipse]: Vars = [__, ___, __, ___], Ineqs = [(__, ___)], solve(Vars, Ineqs, Result).
Vars = [0, 1, 0, 1]
__ = 0
___ = 1
Ineqs = [(0, 1)]
Result = "0101"
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在没有太多代码的情况下获得Vars = [__, ___, …
我的问题是否正确?我到处看,但找不到任何东西。我很确定这是我学习喀拉拉邦时解决的,但是如何在pytorch中实现呢?
CL-USER>(exp 1)
2.7182817
为什么?它应该是2.7182818(从2.7182818284590452353602874713526624977572470936999595749669舍入...)
SBCL 1.0.29.11.debian
我掌握了密码算法和加法的思想,但我无法弄清楚如何进行乘法密码算术问题.它只是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.
Run Code Online (Sandbox Code Playgroud)
编辑:我正在使用生成和测试方法
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, …Run Code Online (Sandbox Code Playgroud)