You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MiniZinc数组切片约束报错:array comprehension类型错误解决方案咨询

MiniZinc数组切片约束问题解决方法
  • 错误原因:你原代码中0 in schedule[i..i+maxOn]的写法不符合MiniZinc语法,MiniZinc不支持直接用in操作符判断元素是否存在于数组切片中,这是触发类型错误的原因。

  • 正确代码实现:改用exists遍历切片内的元素,判断是否存在值为0的元素,对应你Python循环的逻辑:

constraint forall(i in 0..length(schedule)-1 - maxOn) (
    exists(j in i..i+maxOn) (schedule[j] == 0)
);
  • 逻辑说明:外层forall遍历所有合法的切片起始索引,内层exists检查当前切片(从i到i+maxOn的元素)中是否存在0,和你Python中for i in range(len(schedule)-maxOn)后判断切片是否包含0的逻辑完全一致。

内容的提问来源于stack exchange,提问作者Emma van Kleef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:32:02