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, время: 19:52. |