1. Каковы преимущества и недостатки алгоритмов, основанных на методе Greedy?
2. Опишите в общих чертах алгоритм полного перебора, который определяет под-
множество B из вышеприведенного примера. Оцените временную сложность по-
лученного алгоритма.
3. Объясните общую схему алгоритмов, основанных на методе Greedy
#include <iostream>
using namespace std;
int main()
{
int a, b ,c ,x, y, z, t;
cin >> x >> y >> z >> t;
if ((x + y + z + t) / 3 == x)
{
cout << x-y <<" "<< x-z <<" "<< x-t;
}
if ((x + y + z + t) / 3 == y)
{
cout << y-x <<" "<< y-z << " "<<y-t;
}
if ((x + y + z + t) / 3 == z)
{
cout << z-y <<" "<< z-x <<" "<< z-t;
}
if ((x + y + z + t) / 3 == t)
{
cout << t-y <<" "<< t-z <<" "<< t-x;
}
return 0;
}
Объяснение:
ответ с Объяснением:
23. По моему методу:
Запишем степени 2, начиная с 0 слева направо:
16 8 4 2 1
1 0 1 1 1
ответ: 10111₂
Под степенями записано сколько раз степень 2 влезет в число. Распишу на примере двоичной системы. У нас есть число 23. Максимальная степень 2 которая в это число влезет - 16. Она влезает в число 23 1 раз. Записываем 1, а на правые числа оставляем остаток. Было число 23, отняли 16 * 1, получилось 7. В семерку число 8 не влезает, поэтому пишем 0 раз и оставляем остаток: 7 - 8 * 0 = 7. Так же проделываем с остальными числами. Последнее число должно быть единицей - любое число в 0 степени. Нижние цифры и получились ответом - 10111₂, можете загуглить и проверить.
С шеснадцатеричной системой, как и с любой другой, все обстоит точно так же. Только в 16 системе добавляются цифры: А = 10, В = 11, С = 12, D = 13, E = 14, F = 15. Запишем степени числа 16 и решим пример:
16 1
1 7
ответ: 17₁₆
С восьмеричной системой все разумеется так же
8 1
2 7
ответ: 27₈