Цитата
xenia1996
...
Для чисел от 1 до 15 получается 348240 решений, если считать различными все перестановки. Если циклические сдвиги считать одной и той же расстановкой, то 23216, а если ещё не различать обход по часовой и против часовой стрелки — 11608.
Перебирать все 15! перестановок при этом не нужно. Можно построить граф: соединить числа a и b, если a+b делится на 4 или на 7, а затем посчитать гамильтоновы циклы динамикой по подмножествам...
Спасибо! У меня получились те же ответы.
Это хорошая идея - сведение к поиску гамильтоновых циклов. Здесь даже ничего программировать не нужно. Например, в Maple есть встроенная функция GraphTheory:-TravelingSalesman, которая находит такие циклы.
Я решал построением дерева всех возможных вариантов, начиная с 1. После первого шага получаем варианты, начинающиеся с чисел:
[1, 3], [1, 6], [1, 7], [1, 11], [1, 13], [1, 15]
После второго шага - с чисел:
[1, 3, 4], [1, 3, 5], [1, 3, 9], [1, 3, 11], [1, 3, 13], [1, 6, 2], [1, 6, 8], [1, 6, 10], [1, 6, 14], [1, 6, 15], [1, 7, 5], [1, 7, 9], [1, 7, 13], [1, 7, 14], [1, 11, 3], [1, 11, 5], [1, 11, 9], [1, 11, 10], [1, 11, 13], [1, 13, 3], [1, 13, 7], [1, 13, 8], [1, 13, 11], [1, 13, 15], [1, 15, 5], [1, 15, 6], [1, 15, 9], [1, 15, 13]
и так далее.