Предмет: Информатика, автор: lokon7130

сколько различных цифр восьмеричной записи числа 2^102 + 2^100 + 2^85 + 2^17

исполнитель калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить
2. Прибавить 2
Программа для исполнителя Калькулятор - это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 13 и при этом траектория вычислений содержит число 7?​


MrSolution: Во втором задании не написано, что прибавляет первая команда.
MrSolution: Вообще такие задачи легко решаются и на листе бумаги, но о программном методе помнить надо, так как компьютер гарантировано даст правильный ответ.
lokon7130: мне нужно именно на бумаге, а не то по жопе дадут
MrSolution: Тогда представляешь все, как <число>*8^[степень]. Будет: 8^34+2*8^33+2*8^28+4*8^5. Откуда следует, что число будет 12000020000000000000000000000400000
lokon7130: а почему так, просто мне главное логику понять
MrSolution: Ну смотри, 8 - это 2^3. А в двоичной системе это 1000. Также и тут.
MrSolution: 8^34 - это 1 и 34 нуля. 2*8^33 - это 2 и 33 нул
MrSolution: нуля*
lokon7130: Лан, спасибо

Ответы

Автор ответа: MrSolution
2

Ответ:

(см. объяснение)

Объяснение:

Ниже показано решение на различных языках программирования + аналитический метод.

Java:

System.out.println(BigInteger.valueOf(2).pow(102).add(BigInteger.valueOf(2).pow(100)).add(BigInteger.valueOf(2).pow(85)).add(BigInteger.valueOf(2).pow(17)).toString(8));

Pascal:

##

var res: BigInteger := BigInteger.Add(BigInteger.Add(BigInteger.Add(BigInteger.Pow(BigInteger.Parse('2'),102),BigInteger.Pow(BigInteger.Parse('2'),100)),BigInteger.Pow(BigInteger.Parse('2'),85)),BigInteger.Pow(BigInteger.Parse('2'),17));

 var s: string := '';

 while(not res.IsZero) do

 begin

   s:= BigInteger.Remainder(res,8).ToString+s;

   res:= BigInteger.Divide(res,BigInteger.Parse('8'));

 end;

 writeln(s);

Python:

a = 2**102+2**100+2**85+2**17

s = ''

while(a>0):

   s=str(a%8)+s

   a//=8

print(s)

Аналитический метод:

Нужно представить все, как <число>*8^[степень]. Заметим, что:

2^{102} + 2^{100} + 2^{85} + 2^{17}=8^{34}+2*8^{33}+2*8^{28}+4*8^{5}

Результат полученный во всех случаях одинаковый:

12000020000000000000000000000400000

Это означает, что всего в числе встречается 4 различные цифры.

Задание выполнено!


lokon7130: друг, это круто конечно. но это надо решить на бумаге. это ЕГЭ по факту, какие программы
lokon7130: она прибавляет в 1) прибавляет 1. не написал почему-то
MrSolution: На егэ с этого года разрешено любое задание решать на компьютере.
lokon7130: это не ЕГЭ, а задание ЕГЭ, сам я на первом курсе колледжа
lokon7130: и моя специальность вроде как не про программирование
lokon7130: короче, если знаешь как это реализовать на бумаге, буду благодарен. а то всё решил, а с этим запара
MrSolution: написал в комментарии к вопросу
Похожие вопросы
Предмет: Английский язык, автор: 69лол9
Предмет: География, автор: Стефания39