0
我是一個MiniZinc新手,試圖通過使用數組來爲MiniZinc教程中的玩具程序概括着色澳大利亞地圖。爲什麼MiniZinc聲明「意外」?
以下是節目與我2數組聲明:
% Colouring Australia using nc colours
int: nc = 3; /* number of colours */
int: ns = 7; % number of states
% I added these 2 lines, and changed nothing else so far
array[1..ns] of string: names = ["wa","nt","sa","q","nsw","v","t"];
var array[1..ns] of 1..nc: colours;
var 1..nc: wa; % the color assigned to each state, to be calculated
var 1..nc: nt;
var 1..nc: sa;
var 1..nc: q;
var 1..nc: nsw;
var 1..nc: v;
var 1..nc: t;
constraint wa != nt; % adjacent states
constraint wa != sa;
constraint nt != sa;
constraint nt != q;
constraint sa != q;
constraint sa != nsw;
constraint sa != v;
constraint q != nsw;
constraint nsw != v;
solve satisfy;
第一個數組聲明是由無投訴編譯器所接受。 第二個數組語句給出了語法錯誤消息:「意外數組」,但沒有抱怨語法本身。
陳述的順序應該是不相關的,所以它不可能是這樣的。 用int替換1..nc仍然給出錯誤。
是什麼讓它「意外」?爲什麼第一個數組不是意外的?
如何應該我在定義一個決策變量數組?