С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 27.03.2023
Сообщений: 20
1

С помощью алгоритма с возвратом решить «Задачу о весах»: напечатать все наборы заданного веса с точностью

27.03.2023, 12:45. Показов 556. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С помощью алгоритма с возвратом решить «Задачу о весах»: напечатать все наборы заданного веса с точностью до перестановок слагаемых внутри набора.
Исходный набор предметов - 1 кг, 1 кг, 1 кг, 1 кг, 2 кг, 2 кг, 4 кг, 4 кг, 6 кг, 7 кг, 8 кг
Вес, который необходимо набрать - 10

Приложить текст программы и скриншот с результатами работы.
Ответить на вопрос: Какова вычислительная сложность алгоритма?

C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2023, 12:45
Ответы с готовыми решениями:

Решить задачу методом рекурсивного перебора с возвратом
В Волшебной стране используются монетки достоинством A1, A2,..., AM. Волшебный человечек пришел в...

Реш ить задачу с помо щью алгоритма перебора с возвратом
Перебрать все пути в графе между двумя заданными вершинами, не содержащие одинаковых вершин....

Алгоритмы с возвратом. Задача о весах
Здравствуйте, попытался разобраться с данной задачкой на с++, но ничего не получилось. Нашел в...

С помощью алгоритма Дейкстры найдите путь минимального веса между вершинами
С помощью алгоритма Дейкстры найдите путь минимального веса между вершинами 1 и 6 в нагруженном...

1
2859 / 2006 / 988
Регистрация: 21.12.2010
Сообщений: 3,711
Записей в блоге: 10
15.08.2023, 09:13 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
namespace rng = std::ranges;
 
int const W = 10; // вес
std::vector<int> vct{ 1,1,1,2,2,4,4,6,7,8 }, used(vct.size()), vres;
int sum = 0;
 
void dfs(int ind)
{
    if (sum + vct[ind] < W)
    {
        sum += vct[ind];
        used[ind] = 1;
        vres.push_back(vct[ind]);
        for (auto ib = vct.begin(); ib != vct.end(); )
        {
            int i = std::distance(vct.begin(), ib);
            if (!used[i])
            {
                dfs(i);
                ib = rng::upper_bound(vct, *ib);
            }
            else
            {
                ++ib;
            }
        }
        vres.pop_back();
        used[ind] = 0;
        sum -= vct[ind];
    }
    else if (sum + vct[ind] == W)
    {
        rng::copy(vres, std::ostream_iterator<int>{std::cout, " "});
        std::cout << vct[ind] << "\n";
    }
}
 
int main()
{
    rng::sort(vct);
    for (auto ib = vct.begin(); ib != vct.end(); ib = rng::upper_bound(vct, *ib))
    {
        int i = std::distance(vct.begin(), ib);
        dfs(i);
    }
}
0
15.08.2023, 09:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2023, 09:13
Помогаю со студенческими работами здесь

Вывести все 2-х, 3-х и 4-х элементные наборы из элементов заданного множества
Привет всем, прошу помочь мне решить задачку: &quot;Ввести множество, состоящее из n элементов: чисел...

Решить задачу приближенного интегрирования функций с заданной точностью
Написать программу, реализующую итерационные вычислительные процессы, с использованием процедурных...

с помощью перебора решить задачу:
какие положительные целые числа меньше 20, удовлетворяют следующему равенству I^3 +J^3+K^3 =L^3...

Решить задачу с помощью логических выражений.
Ребят, помогите решить задачку с помощью логических выражений: В санатории на берегу моря...

Решить задачу с помощью оператора case
Ввести с клавиатуры и сохранить в массиве В кредитные ставки каждого из 11 банков города....

Решить мат. задачу с помощью цикла
Давайие темам осмысленные имена. Не первый день на форуме. Так же настоятельно не рекомендую...

Решить задачу с помощью математической библиотеки
Народ помогите решить задачу на Visual Basic, очень нужна помощь


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru