У меня есть код, который принимает заданный список пар чисел и решает для цепей из 7. Однако для одного из них требуется отвратительное количество времени (ну, у меня нет решил еще 1, и это было большое количество времени). Мне было интересно, есть ли лучший/более эффективный способ кодирования этого.Создание последовательных пар номеров - Пролог
Вот что я сделал, без цифр в списке «L». (Список выглядит такой: L= [[1,2],[2,3],...]
)
length(L,LEN),
interval(N1,1,LEN),
interval(N2,1,LEN),
interval(N3,1,LEN),
interval(N4,1,LEN),
interval(N5,1,LEN),
interval(N6,1,LEN),
interval(N7,1,LEN),
nth1(N1,L,A),
nth1(N2,L,B),
nth1(N3,L,C),
nth1(N4,L,D),
nth1(N5,L,E),
nth1(N6,L,F),
nth1(N7,L,G),
nth1(2,A,A2),
nth1(1,B,B1),
A2 = B1,
nth1(2,B,B2),
nth1(1,C,C1),
B2 = C1,
nth1(2,C,C2),
nth1(1,D,D1),
C2 = D1,
nth1(2,D,D2),
nth1(1,E,E1),
D2 = E1,
nth1(2,E,E2),
nth1(1,F,F1),
E2 = F1,
nth1(2,F,F2),
nth1(1,G,G1),
F2 = G1,
nth1(2,G,G2),
nth1(1,A,A1),
G2 = A1,
R = (A,B,C,D,E,F,G).
Простите меня, если я ошибаюсь, но ваш код работает только в том случае, если в списке 7 пар. Мой набор данных - 150 пар. –
Мне очень жаль, я забыл принять ответ. –
не проблема, только когда ответ не принят, он сигнализирует, что проблема все еще не решена ... :) –