All the stars we steal from the nightsky will never be enough
Встала задача перебрать перестановки и выбрать из них те, которые удовлетворяют условиям.
Полным перебором ее решать не вариант - всего шестнадцать элементов, а 16! не самое маленькое число.
Я вижу решение задачи в отбросе веток, какие на каком-то этапе уже не удовлетворяют условию, но у меня нет ни единой мысли, как это реализовывать.
формулировка задачи
Полным перебором ее решать не вариант - всего шестнадцать элементов, а 16! не самое маленькое число.
Я вижу решение задачи в отбросе веток, какие на каком-то этапе уже не удовлетворяют условию, но у меня нет ни единой мысли, как это реализовывать.
формулировка задачи
Впервые слышу о такой игре посему вопросы. Возможно, глупые. Как должно выглядеть решение?
То есть, почему нельзя просто сгенерить случайную комбинацию n чисел, которая давала бы в сумме 10 (типа 1+2+3+4) и просто расставить их по полю?
я так понимаю, что уже есть квадртаы с цифрами. Их нужно только расставить по полю.
перебрать все варианты минимум один раз - это около 600 часов по верхней оценке. я уверена, что перебор можно оптимизировать )
Скептичный циник, dpleshakov, именно, квадраты уже заданы и их нельзя вертеть или менять )
спасибо)
Mr.Freedom, полный перебор я писала, за ночь не успел
1 заполняем все свободные нулями
2 берем первую свободну ячейку - ставим 9
3 берем вторую свободную ставим 9 - проверяем - сумму линий - уже не сойдется значит берем 8
если не подошла ни одно из чисел откатываемся назад(в предыдущую ячейку) и меняем там значение.
ПС обратный порядок перебора мне кажется будет быстре в данном случае - хотя скорее всего на копейки.
только тогда нужно один элемент поставить на первую позицию и зафиксировать его там, я правильно понимаю?
пока(1){
do{
взять следующий возможный кубик
}
while(проверить ненарушено ли правило суммы)
если по прежнему правило суммы нарушено откатится на предыдущюу ячейку(если это первая ячейка игра не имеет решение)
если все ок - переходим на следующую(если это последняя ячейка - игра пройдена)
}
еще раз спасибо!
Можно посмотреть, если будут конкретные кубики с цифрами.
А по коду рекомендации сделать основную функцию - ровно это псевдокод переписать на норм код, а а дальше уже писать отдельно функции которые потребовались в алгоритме(что такое брать свободный, как проверять правило суммы и т д)