小编mlg*_*556的帖子

关于构建列表直到满足条件

我想使用 Prolog解决Dan Finkel 的“巨型猫军队之谜”

基本上,您从 开始[0],然后通过使用以下三种操作之一来构建此列表:添加5、添加7或取sqrt。您已成功完成游戏的时候,你已经成功地建立一个列表,这样21014出现在列表中,顺序,并且可以有他们之间的其他数字。

规则还要求所有元素都是不同的,它们都是<=60并且都只是整数。例如,从 开始[0],您可以应用(add5, add7, add5),这将导致[0, 5, 12, 17],但由于它没有 2,10,14 的顺序,它不能满足游戏。

我想我已经成功地编写了所需的事实,但我不知道如何实际构建列表。我认为使用dcg是一个不错的选择,但我不知道如何。

这是我的代码:

:- use_module(library(lists)).
:- use_module(library(clpz)).
:- use_module(library(dcgs)).

% integer sqrt
isqrt(X, Y) :- Y #>= 0, X #= Y*Y.

% makes sure X occurs before Y and Y occurs before Z
before(X, Y, Z) --> ..., [X], ..., …
Run Code Online (Sandbox Code Playgroud)

list prolog dcg clpfd

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

如何从 NumPy 数组中删除所有出现的元素?

标题是不言自明的:我有一个 numpy 数组(比如 ints) [ 1 2 10 2 12 2 ],我想删除所有出现的2,因此结果数组是[ 1 10 12 ]. 我最好尽可能快地执行此操作,因为我使用的是相对较大的数组。

NumPy 有一个被调用的函数,numpy.delete()但它将索引作为参数,而我没有。

编辑:这个问题确实不同于使用条件检查从 numpy 数组中删除某些元素,我猜这是一个更“一般”的情况。但是,从数组中删除出现的想法是非常基本的,值得提出自己的明确问题,所以我保留了这个问题。

arrays numpy scipy python-3.x

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

标签 统计

arrays ×1

clpfd ×1

dcg ×1

list ×1

numpy ×1

prolog ×1

python-3.x ×1

scipy ×1