minizinc - MiniZinc:类型错误:找不到具有此签名的函数或谓词:`cost(var int,var int)'
问题描述
int: W;
set of int: COL = 1..W;
int: H;
set of int: ROW = 1..H;
array[ROW,COL] of int: cost;
int: budget;
array[1..budget] of var COL: x;
array[1..budget] of var ROW: y;
array[1..budget] of int: c;
...
constraint forall(i in 1..budget)(c[i]=cost(x[i],y[i]));
Minizinc 有一个约束类型错误报告:没有找到具有此签名的函数或谓词:`cost(var int,var int)'。如何使用 x,y 将数组成本中的值分配给数组 c?
解决方案
cost
被声明为数组,而不是函数。这意味着 MiniZinc 希望您使用方括号来使用它,即cost[x[i], y[i]]
. 因为您当前正在使用括号 MiniZinc 认为这cost(x[i],y[i])
是一个函数调用。
推荐阅读
- swift - 为两个单独的 SKSpriteNodes 同时随机运行两个 SKAction
- r - st_write 拒绝覆盖 R 中 geopackage 中的图层
- xml - 不断收到“没有元素声明”错误。这个 XML/DTD 有什么问题?
- r - R 库文件夹位置和 Docker
- c++ - LLVM如何检测和忽略库(内置)函数?
- javascript - 模板文字中的多重评估...如何改进样式组件的填充计算?
- json - 每个选择选项的反应 API 调用
- javascript - JavaScript 数组:按 2 分组查询数组:卡在 reduce() javascript 问题中
- hive - 如何使 Hive 查询利用存储在 Metastore 中的统计信息
- salesforce - 从两个字段匹配的不相关对象中获取值