任何人都可以帮助使用numpy和python的代码片段?
给定一个像numpy数组一样的数组
a = array([[1,11], [3,9], [5,7]]
Run Code Online (Sandbox Code Playgroud)
我想找到每列的最小值,所以1和7然后从各列中减去这个值,
a = array([[0,4], [2,2], [4,0]]
Run Code Online (Sandbox Code Playgroud) 我可以在Scala中使用原语吗?
用例用于存储数十亿的整数,因此4个字节(对于int)和16个字节(对于整数)之间的差异很重要.
有没有人在功能样式中完成Kadane算法的Scala实现?
Haskell前奏函数是否可以简化为一组核心函数,以便可以根据核心集定义所有其他函数?如果是这样,核心功能是什么?
鉴于以下事实:
pos(a,1).
pos(b,2).
pos(c,3).
Run Code Online (Sandbox Code Playgroud)
我想找到一个角色的位置.例如,pos(b,P)P = 2.
将这些事实转换为列表并进行成员资格检查是否更好,如下所示:
member(X/P,[a/1,b/2,c/3])
Run Code Online (Sandbox Code Playgroud)
我认为第一种选择更好,但任何人都可以解释每种方法的优缺点吗?
注意,这只是一个简单的例子.我会有很多事实,例如100-1000,并且必须多次检查,例如100k +.
变体谓词的这两个实现之间是否存在逻辑差异?
variant1(X,Y) :-
subsumes_term(X,Y),
subsumes_term(Y,X).
variant2(X_,Y_) :-
copy_term(X_,X),
copy_term(Y_,Y),
numbervars(X, 0, N),
numbervars(Y, 0, N),
X == Y.
Run Code Online (Sandbox Code Playgroud) 我们可以将高阶映射谓词定义为:
map([], [], F).
map([A|As], [B|Bs], F) :-
call(F, A, B),
map(As, Bs, F).
Run Code Online (Sandbox Code Playgroud)
同样,我们可以将fold (left)定义为:
fold([], Acc, Acc, _F).
fold([A|As], B, Acc1, F) :-
call(F, Acc1, A, Acc2),
fold(As, B, Acc2, F).
Run Code Online (Sandbox Code Playgroud)
reduce(左)的正确定义是什么?我们可以这样定义吗?
reduce([A|As], Bs, F) :-
fold(As, Bs, A, F).
Run Code Online (Sandbox Code Playgroud)
并减少(右)如下?
reduceback([], Ident, F) :-
identity(F, Ident).
reduceback([A|As], B, F) :-
reduceback(As, C, F),
call(F, C, A, B).
Run Code Online (Sandbox Code Playgroud)
这些正确吗?
我正在尝试is_prime在Haskell中定义一个函数.任何人都可以指出使用任何功能的问题?
另外,我知道下面的代码是天真的,但我正在学习语言,所以从babysteps开始.
is_prime 0 = False
is_prime 1 = False
is_prime 2 = True
is_prime n = any [n `mod` k == 0 | k <- [2.. sqrt n]]
Run Code Online (Sandbox Code Playgroud) 我预计内置 length/2 谓词与逻辑推理的数量呈线性关系。然而,它似乎是恒定的:
?- length(L,10),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (63% CPU, 142857 Lips)
?- length(L,20),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (62% CPU, 153846 Lips)
?- length(L,30),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (65% CPU, 111111 Lips)
Run Code Online (Sandbox Code Playgroud)
这是因为程序被委托给C了吗?我在 SWIPL 代码库中找不到相关代码。
我在Python中有这个代码,它找到数组中总和为k的所有数字对:
def two_sum_k(array, k):
seen = set()
out = set()
for v in array:
if k - v in seen:
out.add((min(v, k-v), max(v, k-v)))
seen.add(v)
return out
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我将其转换为Scala(功能样式)吗?也具有线性复杂性.
这有效:
name="test.txt"
yap -q << % > $name
[experiment_yap],
exp1_min(brother,2).
%
Run Code Online (Sandbox Code Playgroud)
这不是:
for i in 01 02 03 04 05
do
name="test.txt"
yap -q << % > $name
[experiment_yap],
exp1_min(brother,2).
%
done
Run Code Online (Sandbox Code Playgroud)
我收到第19行:语法错误:意外的文件结束
在Python中你可以做到
>>> import from collections counter
>>> Counter(['a','b','b','c'])
>>> Counter({'b': 2, 'a': 1, 'c': 1})
Run Code Online (Sandbox Code Playgroud)
Prolog有类似的东西吗?像这样:
counter([a,b,b,c],S).
S=[a/1,b/2,c/1].
Run Code Online (Sandbox Code Playgroud)
这是我的实施:
counter([],List,Counts,Counts).
counter([H|T],List,Counts0,[H/N|Counts]):-
findall(H, member(H,List), S),
length(S,N),
counter(T,List,Counts0,Counts).
counter(List,Counts):-
list_to_set(List,Set),
counter(Set,List,[],Counts).
Run Code Online (Sandbox Code Playgroud)
它相当冗长,所以我想知道是否有内置谓词或更简洁的实现.