Эйнштейн 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

но не найдено решений, и я уверен, что решения существуют:)

0 ответов

Другие вопросы по тегам