小编Ser*_*nko的帖子

C/C++中注释行末尾的反斜杠

您的编辑/ 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)

c c++ ide editor highlighting

16
推荐指数
1
解决办法
1772
查看次数

Prolog:"findall"用于有限数量的解决方案

假设我想找到谓词的所有解的总和,我可以使用

findall(L, find(L), Sols),
Run Code Online (Sandbox Code Playgroud)

并且只是总结了Sols的成员.

但是如果find(L)有很多(无限的,可能)解决方案,我只想得到它们中的前10个呢?

我希望它可用于B-Prolog和ECLiPSe CLP.

prolog

9
推荐指数
2
解决办法
1529
查看次数

在Prolog中解决"喂戈尔托"之谜

前段时间我为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 = [__, ___, …

metaprogramming prolog constraint-programming

7
推荐指数
2
解决办法
244
查看次数

如何使用pytorch制作具有多个输出的神经网络?

我的问题是否正确?我到处看,但找不到任何东西。我很确定这是我学习喀拉拉邦时解决的,但是如何在pytorch中实现呢?

pytorch

5
推荐指数
1
解决办法
1040
查看次数

在SBCL中出现错误?

CL-USER>(exp 1)
2.7182817

为什么?它应该是2.7182818(从2.7182818284590452353602874713526624977572470936999595749669舍入...)

SBCL 1.0.29.11.debian

lisp sbcl

4
推荐指数
1
解决办法
245
查看次数

密码算术乘法序言

我掌握了密码算法和加法的思想,但我无法弄清楚如何进行乘法密码算术问题.它只是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)

math prolog cryptarithmetic-puzzle

3
推荐指数
1
解决办法
1844
查看次数