如何编译这个MiniZinc输出语句?

时间:2015-02-07 16:46:15

标签: output minizinc

如何修改它以在MiniZinc中编译:

output [[show (P[j,p]) ++ "\n" | p in 1 .. 4] | j in 1 .. 4];

我尝试了几种方法。

1 个答案:

答案 0 :(得分:0)

这取决于你想做什么。以下是将P作为矩阵编写的一些不同方法。第一个将矩阵写为列表([...]),第二个只输出值。

output [  
   show([P[j,p] | p in 1 .. 4]) ++ "\n"
   | j in 1 .. 4
];


output [  
   if p = 1 then "\n" else " " endif ++
     show(P[j,p])
    | j in 1 .. 4, p in 1 .. 4
];

更新:在MiniZinc 2.0中(至少在最新的Git版本中),现在有一个show2d谓词:

 output [ show2d(P)];