找到满足谓词的最小整数

时间:2015-03-29 15:07:05

标签: search j

有没有一种很好的方法可以找到满足J中给定谓词的最小整数(起始零)?

2 个答案:

答案 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