cyber,
всего вариантов 768 за счёт оптимизации (continue) получилось 488 , а необходимые варианты были созданы только 1 раз (всего 13). <script> var num = [10, 7, 8, 1], res = [], limit = 55, a, b, c, e; for (var i = 0; i <= 5; i++) { a = i * num[0]; if (a > limit) continue; for (var k = 0; k <= 3; k++) { b = k * num[1]; if (a + b > limit) continue; for (var n = 0; n <= 3; n++) { c = n * num[2]; if (a + b + c > limit) continue; for (var d = 0; d <= 7; d++) { e = d * num[3]; if (a + b + c + e == limit) res.push([a, b, c, e]) } } } }; document.write( res.join("<br>")+ "<br>Всего вариантов : " + res.length ); </script> |
Prolog использует поиск с возвратом.
cyber, ты бы открыл википедию и почитал, что такое поиск с возвратом. Я даже не понимаю, о каком поиске с возвратом может идти речь, если у вас нет дерева :) Поиск с возвратом, это практически тоже самое, что и поиск в глубину, который, как и другие методы неинформированого поиска реализован (из коробки) в моем рекурсивном итераторе, http://javascript.ru/forum/project/5...-iterator.html :) |
Цитата:
Проще говоря, это тупо перебор всех возможных вариантов, с нужными ифками на отброс лишних вариантов |
рони, спасибо, ты быстрый, я только начал писать))
П.с а вообще я чет заигрался с рекурсией и костылями что не попробовал на форах П.с.с я не знаю какие у меня буду входные данные, то что я дал это данные которые я вручную проверил и на них тестирую)) |
Цитата:
|
nerv_, ты ведешь к тому что мне нужно дерево или граф?)
|
Но посути получается, что при рекурсии оно входит в своеобразное дерево и углубляется пока сумма меньше квоты
|
Цитата:
Информационные источники: Искусственный интеллект. Современный подход (книга) Artificial Intelligence (онлайн курс от института Беркли) |
Цитата:
10 / | \ \ 10 1 8 7 / | \ \ 1 7 10 8 и так далее в зависимости от количества возможных элементов? или как, а то вообще идей нет уже |
Короче сдал и я вот не пойму, не проходило тест из за того что ифка для проверки выхода за границе находилась в начале функции, а не перед ее вызовом, как то так.
Все было гениально просто |
Часовой пояс GMT +3, время: 22:20. |