如何获得一维 minizinc 数组的前(或后)n 个元素?

How to get the first (oder last) n elements of a minizinc array with 1 dimension?

听起来很简单,但我还没有找到解决方案。 如何获得一维 minizinc 数组的前(或后)n 个元素?结果应该是一个数组,这样我就可以应用 count () 或 sum()。

如果你有一个索引集为 1..m 的数组 arr,最简单的方法是以下数组理解:

[ arr[i] | i in 1..n ]

也可以构造一个不依赖于从1开始的索引集的数组理解:

[ arr[i] | i in (min(index_set(arr)))..(min(index_set(arr)))+n ]

请注意,如果 length(arr) < n.

,这两种理解都不起作用