решить олимпиаду по информатике за 11 класс. 1. Какого вида вирусов по их «среде обитания» не существует?
12. Всего в MSWord существует пять уровней форматирования. К какому уровню относятся начертание, размер, цвет, межбуквенные интервалы? А. 1 уровень Б. 2 уровень В. 4 уровень Г. 5 уровень 13. Какой из основных видов диаграмм представлен на рисунке: А. График Б. С областями В. Гистограмма с накоплением Г. Поверхность 14. Для того, чтобы в текстовом редакторе MSWord вставить сноску, необходимо сделать следующие действия: А. Вставка → Вставить сноску Б. Макет → Вставить сноску В. Ссылки → Вставить сноску Г. Рецензирование → Вставить сноску 15.Дистрибутив Ubuntu в качестве графической рабочей среды имеет: А. GNOME Б. Mezzo В. KDE Г. Xfce
Задание 1. а) представим -17₁₀ в обратном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 б) представим 22 в обратном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). В этом случае перенос нужно осуществить в младший разряд, т.е. сложить результат с единицей и окончательно получим 00000101
Задание 2. а) представим -17₁₀ в дополнительном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 - прибавляем единицу в младший разряд: 11101111 б) представим 22 в дополнительном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). При суммировании в дополнительном коде переполнение игнорируется, поэтому результат не меняется.
Чтобы решить эту задачу, мы можем воспользоваться жадным алгоритмом. Жадный алгоритм заключается в выборе на каждом шаге наилучшего решения для достижения общей цели. В данном случае общая цель - заплатить минимальное количество чеканных монет.
Чтобы применить жадный алгоритм к этой задаче, мы будем итеративно вычитать самую крупную монету из суммы, пока сумма не станет равна нулю. На каждом шаге мы будем увеличивать счетчик использованных монет.
Давайте решим эту задачу на примере.
1) Пользователь вводит цену за услугу ведьмака, допустим, она равна 98.
2) Создадим переменную "счетчик_монет" и установим ее равной 0. Эта переменная будет содержать количество использованных монет.
3) Программа проверяет, какую монету можно вычесть из текущей суммы.
- 98 >= 25 - мы можем вычесть 25.
- Обновляем значение счетчика монет: счетчик_монет = 1.
- Обновляем значение суммы: 98 - 25 = 73.
- Продолжим выполнение цикла.
4) Теперь сумма равна 73. Снова проверяем, какую монету можно вычесть.
- 73 >= 25 - мы можем вычесть 25.
- Обновляем значение счетчика монет: счетчик_монет = 2.
- Обновляем значение суммы: 73 - 25 = 48.
- Продолжим выполнение цикла.
5) Теперь сумма равна 48. Снова проверяем, какую монету можно вычесть.
- 48 >= 25 - мы можем вычесть 25.
- Обновляем значение счетчика монет: счетчик_монет = 3.
- Обновляем значение суммы: 48 - 25 = 23.
- Продолжим выполнение цикла.
6) Теперь сумма равна 23. Снова проверяем, какую монету можно вычесть.
- 23 >= 10 - мы можем вычесть 10.
- Обновляем значение счетчика монет: счетчик_монет = 4.
- Обновляем значение суммы: 23 - 10 = 13.
- Продолжим выполнение цикла.
7) Теперь сумма равна 13. Снова проверяем, какую монету можно вычесть.
- 13 >= 10 - мы можем вычесть 10.
- Обновляем значение счетчика монет: счетчик_монет = 5.
- Обновляем значение суммы: 13 - 10 = 3.
- Продолжим выполнение цикла.
8) Теперь сумма равна 3. Снова проверяем, какую монету можно вычесть.
- 3 >= 1 - мы можем вычесть 1.
- Обновляем значение счетчика монет: счетчик_монет = 6.
- Обновляем значение суммы: 3 - 1 = 2.
- Продолжим выполнение цикла.
9) Теперь сумма равна 2. Снова проверяем, какую монету можно вычесть.
- 2 >= 1 - мы можем вычесть 1.
- Обновляем значение счетчика монет: счетчик_монет = 7.
- Обновляем значение суммы: 2 - 1 = 1.
- Продолжим выполнение цикла.
10) Теперь сумма равна 1. Снова проверяем, какую монету можно вычесть.
- 1 >= 1 - мы можем вычесть 1.
- Обновляем значение счетчика монет: счетчик_монет = 8.
- Обновляем значение суммы: 1 - 1 = 0.
- Продолжим выполнение цикла.
11) Сумма равна нулю, поэтому мы выходим из цикла.
12) Выводим значение счетчика монет: счетчик_монет = 8. Это и будет минимально возможным количеством чеканных монет для оплаты услуги ведьмака.
Вот и все. Мы использовали жадный алгоритм для определения минимально возможного количества чеканных монет для оплаты услуги ведьмака.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку