Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Информатика. Помогите пожалуста

Абдул Дохман Ученик (15), открыт 4 недели назад
2 ответа
Никита Охотников Знаток (291) 4 недели назад
(№1) Для решения первого задания воспользуемся циклом for:
 for i in range(10000): 
x = i
a = 0
b = 0
while x > 0:
a = a + 1
b = b + x % 10
x = x // 10
if a == 3 and b == 11:
print(i)
На выходе мы получим множество чисел. Последнее из них - и есть максимальное число.
Ответ: 920

(№2) Начнём с того, что наш Исполнитель прибавляет и умножает число, которое мы даём на входе, а значит если число на выходе больше числа,
которое должно получиться, значит таких путей не существует. Если же число, которое мы ввели н входе эквивалетно числу, которое мы должны
получить, то у нас есть только 1 путь. Интерпретируем эти слова на язык программы:
 def f(a, b): 
if a > b: return 0
if a == b: return 1
x = f(a + 1, b)
y = f(a * 2, b)
return x + y

print(f(5, 18))
Ответ: 6

(№3) Перенесём наши значения в Excel для простоты. Наш Сладкоежка может перемещаться как вправо, так и вниз. Построим таблицу с помощью следующей
формулы:
=B2+МАКС(B7;A8) Вправо-нижнем углу и есть наш ответ - 21 конфету может собрать наш Сладкоежка.

(№4) Есть 2 метода решения данной задачи - аналитический и программный. Начнём с программного: воспользуемся встроенной библиотекой в Python, именованной itertools:
 from itertools import product 

k = 0 # Счётчик слов
for x in product('КРАН', repeat=4):
k += 1
print(k)
На наш экран выведет чудесное число 256, которое и является ответом на данную задачу, однако мы могли поступить проще: мы можем заметить, что всего используется 4 различных буквы. Длина нашего слова тоже 4. На каждом месте может быть одна из 4 букв, а значит умножив 4 раза по 4:
4 * 4 * 4 * 4 = 256
Мы получим количество возможных слов.

Надеюсь, моё решение помогло. Если у Вас остались вопросы, смело задавайте их под моим комментарием.
Абдул ДохманУченик (15) 4 недели назад
Получается ответ для 3 задачи 21?
Никита Охотников Знаток (291) Абдул Дохман, именно так. Я бы рекомендовал всё перепроверить, ибо я не робот, но вроде бы всё верно :)
Абдул ДохманУченик (15) 4 недели назад
понял спасибо вам большое большое. а вы можете ещё посмотреть вот эти задачи - https://otvet.mail.ru/question/238020685 . я обязательно помечу как только узнаю правильные ответы
Инспектор Жопидý Просветленный (27913) 4 недели назад
Задача 1: Циклический алгоритм
Анализ кода:
Программа считывает целое число x и затем в цикле while:
1. Увеличивает переменную a на 1.
2. Присваивает переменной b последнюю цифру числа x.
3. Удаляет последнюю цифру из числа x.
4. Цикл завершается, когда x становится равным 0.
В итоге программа выводит значения a и b. Нам нужно найти наибольшее число x, при котором вывод будет сначала 3, а затем 11.
Решение:
1. Анализ вывода:
o a = 3: это означает, что цикл выполнился 3 раза.
o b = 11: это означает, что последняя цифра x была 1, а предпоследняя - тоже 1.
2. Восстановление x:
o Последние две цифры x - 11.
o Цикл выполнился 3 раза, значит, у x было 3 цифры.
3. Наибольшее x:
o Первая цифра должна быть максимально возможной, то есть 9.
Ответ: 911
Задача 2: Динамическое программирование (Вычислитель)
Анализ:
Исполнитель "Вычислитель" может выполнять две команды:
1. Прибавить 1
2. Умножить на 2
Нужно найти количество программ, которые преобразуют число 5 в 18.
Решение:
Можно решать эту задачу с помощью динамического программирования или рекурсивно с мемоизацией.
Динамическое программирование:
1. Создадим массив dp, где dp[i] - количество программ для получения числа i.
2. База: dp[5] = 1 (исходное число).
3. Заполняем массив dp:
o Для каждого числа i от 6 до 18:
 dp[i] = dp[i-1] (если можно получить i прибавлением 1 к i-1)
 dp[i] += dp[i/2] (если i четное, то его можно получить умножением i/2 на 2)
Ответ: dp[18] = 3
Задача 3: Динамическое программирование (Сладкоежка)
Анализ:
Сладкоежка двигается по квадрату 5х5, собирая конфеты. Он может двигаться вправо или вниз. Нужно найти максимальное количество конфет, которое он может собрать, двигаясь из левого верхнего угла в правый нижний.
Решение:
Используем динамическое программирование. Создадим массив dp размера 5х5, где dp[i][j] - максимальное количество конфет, которое можно собрать, дойдя до клетки (i, j).
1. База: dp[0][0] равно количеству конфет в левом верхнем углу.
2. Заполняем массив dp:
o Для каждой клетки (i, j):
 dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + конфеты[i][j]
(максимум из количества конфет, если прийти сверху или слева, плюс конфеты в текущей клетке).
Ответ: dp[4][4] - значение в правом нижнем углу массива dp.
Задача 4: Комбинаторика (Перестановки)
Анализ:
Нужно найти количество различных четырёхбуквенных слов, которые можно составить из букв слова "КРАН", при этом слова не обязательно должны быть осмысленными.
Решение:
1. Всего 4 буквы, и все они разные.
2. Для первой буквы слова есть 4 варианта выбора.
3. Для второй буквы остаётся 3 варианта.
4. Для третьей - 2 варианта.
5. Для четвёртой - 1 вариант.
Ответ: 4 * 3 * 2 * 1 = 24
Похожие вопросы