小编muu*_*pan的帖子

在Prolog中找到N个独特的目标解决方案

你能告诉我如何在Prolog中找到N个独特的目标解决方案吗?

我知道使用findall/3可以找到目标的所有解决方案,但是对于有太多或无限解决方案的目标,如果足够的话我想要找到最多N个唯一解决方案.

我想做的是这样的:

?- find_unique_n(10, X, any_goal(X), Xs).
Xs = [...] % up to 10 unique solutions.
Run Code Online (Sandbox Code Playgroud)

如果目标的唯一解决方案的总数低于N,我想找到所有这些.

编辑:正如虚假指出的那样,尚不清楚"独特解决方案"的含义.如果sample_goal/1定义如下:

sample_goal(1).
sample_goal(1).
sample_goal(2).
sample_goal(2).
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

?- find_unique_n(1, X, sample_goal(X), Xs).
Xs = [1]
?- find_unique_n(2, X, sample_goal(X), Xs).
Xs = [1,2]
?- find_unique_n(3, X, sample_goal(X), Xs).
Xs = [1,2]
Run Code Online (Sandbox Code Playgroud)

对于具有无限解决方案的目标,预期结果是:

?- find_unique_n(2, X, (repeat, between(1,2,X)), Xs).
Xs = [1,2]
?- find_unique_n(3, X, (repeat, between(1,2,X)), Xs).
% This won't stop, it's ok
Run Code Online (Sandbox Code Playgroud)

prolog

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

如何从作业 ID 获取传递给 SLURM 作业的命令行参数?

假设我正在使用命令行参数运行 SLURM 作业,比方说srun sleep 1000. squeuescontrol show job ID显示执行的命令sleep,但不显示其参数1000

我的问题是,如何1000从作业 ID 获取传递给 SLURM 作业命令(在本示例中)的参数?

我正在使用 slurm 17.02.3。

slurm

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

标签 统计

prolog ×1

slurm ×1