我正在研究一个 GECODE 求解器来实现一个矩阵生成问题。我已经弄清楚了我需要的所有约束,除了一个:
Given a Matrix[M, N], all column vectors must be pairwise distinct.
这是我想写的代码:
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
if( i != j )
{
notsame(*this, m.col(i), m.col(j));
}
}
}
但我不知道如何用提供的原始约束来表达这一点。我知道distinct()
存在,但是我不知道如何对矩阵中的列进行操作,而不是对列矩阵本身中的元素进行操作。表达这种对矩阵的约束的最佳方式是什么?