Эйнштейн Puuzle похож на jacop java случайных ограничений чисел?
Привет, ребята, я пытаюсь реализовать что-то, похожее на головоломку Эйнштейна в Jacop(doc:) в Java. Упражнение: Шесть человек живут в 6 домах. Каждый из людей - A,B,C,D,E,F - живет в своем доме. Их фамилии: X,Y,Z,W,U,T: И первое ограничение: Всего у них 20 домашних животных, и у каждого есть хотя бы один. Чтобы сделать это, я сделал имя, фамилию, дом перечислил вот так
public enum Name {
A,B,C,D,E,F;
private IntVar v = null;
public IntVar getIntVar() {
return new IntVar(Writers.store, name(), 0, Writers.size - 1);
}
}
И теперь я понятия не имею, как сделать ограничения со случайными числами, я пытаюсь сделать массив следующим образом:
private IntVar[] pets = {
new IntVar(store, 1 + "", 1, 15),//min one and max 20-5
new IntVar(store, 2 + "", 1, 15),
//others
};
И я пытаюсь определить это противопоказание: C(имя) жил следующим (n+1) человек с 5-ю точками, как это:
store.impose(new XeqC(pets[0], 5));//5
store.impose(new XplusCeqZ(PPlEnums.Name.C.getIntVar(), 1, pets[PPlEnums.Name.C.ordinal()]));//5
ofc другие решения, такие как фамилия А не X или Z, я сделал так:
store.impose(new XneqY(PPlEnums.Name.A.getIntVar(), WritersEnums.Surname.X.getIntVar()));//3
store.impose(new XneqY(PPlEnums.Name.A.getIntVar(), WritersEnums.Surname.Z.getIntVar()));//3
но не найдено решений, и я уверен, что решения существуют:)