有没有一种很好的方法可以找到满足J中给定谓词的最小整数(起始零)?
答案 0 :(得分:2)
这是(^:v^:_
)的infinite power with a right verb。例如,找到可被7整除的第一个整数。
check =: 0 ~: 7 | ] NB. check if y is not a multiple of 7
(>:^:check)^:_ ] 1 NB. increment y (1) while check is true
7
第二点是,如果您在数组中搜索 ,则可以使用special code f i. 1:
(x f y
的第一个位置)。请参阅:http://www.jsoftware.com/help/release/edot504.htm
答案 1 :(得分:0)
Eelvex的答案可能正是您所寻找的,但读取您的问题的一种方法是列表中大于0的最小整数。这些函数返回第一个条件最小值的索引。
(i. <./) _"_^:(<&0)("0) _3 _1 3 4 2
4
minatleast =: (i. <./)@]@:(_"_^:>("0))
0 minatleast _3 _1 3 4 2
4
3 minatleast _3 _1 3 4 2
2