Вы хотите возвести данное число a в некоторую целочисленную степень n, но ваш
калькулятор умеет только перемножать числа. Например, вы можете вычислить a 2 = a × a,
затем вы можете вычислить a 3 = a 2 × a или a 4 = a 2 × a 2 . Вы можете по-разному
организовать вычисление значения a n . Например, вычислить a 5 можно за 4 умножения: 1) a 2
= a × a, 2) a 3 = a 2 × a, 3) a 4 = a 3 × a, 4) a 5 = a 4 × a. Но можно вычислить a 5 всего лишь за 3
умножения: 1) a 2 = a × a, 2) a 3 = a 2 × a, 3) a 5 = a 3 × a 2. Вам необходимо определить, за
какое минимальное число умножений можно вычислить следующие степени: 7, 15, 23, 63.
Вычисление каждой из этих степеней должно быть независимо от остальных, то есть при
вычислении 15-й степени нельзя использовать вычисления, проделанные ранее для
вычисления 7-й степени. Вы решаете четыре независимые задачи – за какое минимальное
число умножений можно вычислить 7-ю степень, 15-ю степень, 23-ю степень и 63-ю степень.
Данная задача является алгоритмом. Мы должны выстроить последовательность действий так,чтобы не остаться в проигрыше.
Цель: перевезти животных и капусту,так,чтобы никто из них не наведил друг другу. Перевозчик-это исполнитель(объект выполняющий действие)
1)Взять козу,переплыть,высадить.
2)Переплыть, взять волка,переплыть,высадить,взять козу,переплыть высадить.
3) Взять капусту, переплыть, высадить.
4)Переплыть,взять козу, переплыть,высадить.
5) Конец алгоритма(4 пункт является результатом последовательно выполненных действий)
2 задача
Количество символов используемых для кодирования номера составляет:
30 букв + 10 цифр = 40 символов. Количество информации несущий один символ равен 6 бит (2^I=40, но количество информации не может быть дробным числом, поэтому берем ближайшую степень двойки большую количества символов 2^6=64).
Мы нашли количество информации заложенное в каждом символе, количество символов в номере равно 7, следовательно 7*6=42 бит
Каждый номер равен 42 битам информации, но по условию задачи каждый номер кодируется одинаковым и минимально возможным количеством байт, следовательно нам необходимо узнать сколько байт в 42 битах. Если разделить 42 на 8 получится дробное число, а нам необходимо найти целое количество байт на каждый номер, поэтому находим ближайший множитель 8-ки который превысит количество бит, это 6 (8*6=48). Каждый номер кодируется 6 байтами.
Для хранения 50 автомобильных номеров потребуется: 6*50=300 байт