М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
abra123
abra123
19.01.2023 06:12 •  Информатика

Можете подробнее рассказать как это решается?


Можете подробнее рассказать как это решается?

👇
Ответ:
КеК5169
КеК5169
19.01.2023

Задания типа 1, 2 решаются с знаний систем счисления и степеней:

а) Приводим все степени к одному основанию (равному основанию системы счисления, в которой потом нужно записать результат). Последнее слагаемое тоже нужно разложить на сумму/разность нескольких степеней (например,  9=8+1=2^3+2^0  или  126=128-2=2^7-2^1 ).

б) Представляем, как выглядит каждое из этих чисел в данной системе счисления (как единица с количеством нулей после неё, равным показателю степени, например  2^3=1000_2 ).

в) Делаем сложение, а затем- вычитание чисел (оба раза- от большего (по модулю) числа к меньшему). Не нужно полностью писать числа, нужно посчитать, сколько появится нулей/единиц между таким то и таким то разрядом, если сложить/вычесть одно из другого (тут нужно понимать, как происходит сложение/вычитание в той или иной системе счисления).

Пример №1:

$ 4^{2014}+2^{2015}-9=(2^2)^{2014}+2^{2015}-(2^3+2^0)=2^{4028}+2^{2015}-2^3-2^0

В двоичной системе эти слагаемые выглядят как:

единица и 4028 нулей (то есть,  1000000...000_2 ),

единица и 2015 нулей (то есть,  1000...000_2 ),

единица и 3 нуля (то есть  1000_2 ),

единица без нулей (то есть,  1_2 ).

Складываем первые два слагаемых (представляем в уме). Получится следующее двоичное число:

1 (2012 нулей) 1 (2015 нулей) ₂

Итого, тут пока только две единицы.

Затем, вычитаем отсюда число 1000₂  Получим вот что:

1 (2012 нулей) 0 (2011 единиц) 1000₂

Итого, тут уже 2013 единиц.

Далее, вычитаем отсюда 1₂  Получаем вот что:

1 (2012 нулей) 0 (2011 единиц) 0111₂

Итого, тут получилось ровно 2015 единиц.

Пример №2:

8^{4024}-4^{1605}+2^{1024}-126=(2^3)^{4024}-(2^2)^{1605}+2^{1024}-(2^7-2^1)=\\\\=2^{12072}-2^{3210}+2^{1024}-2^7+2^1

В двоичной системе эти слагаемые выглядят как:

1) единица и 12072 нуля,

2) единица и 3210 нулей,

3) единица и 1024 нуля,

4) единица и 7 нулей (то есть  10000000_2 ),

5) единица и 1 нуль (то есть,  10_2 ).

Складываем большие положительные слагаемые (№ 1 и 3). Получим:

1 (11047 нулей) 1 (1024 нуля) ₂

Итого, тут пока только две единицы.

Затем, вычитаем отсюда слагаемое № 2  Получим:

(8862 единиц) (2185 нулей) 1 (1024 нуля) ₂

Итого, тут уже 8863 единицы.

Далее, вычитаем 10000000₂  Получаем вот что:

(8862 единиц) (2185 нулей) 0 (1016 единиц) 10000000₂

Итого, тут сейчас 9879 единиц.

Далее, вычитаем отсюда 10₂  Получаем вот что:

(8862 единиц) (2185 нулей) 0 (1016 единиц) 01111110₂

Итого, тут получилось ровно 9884 единицы.

Задание № 3:

2^{1024}+2^{1026}

Если сложить это в двоичном виде, то число разрядов останется такое же, как было в большем слагаемом (оно в двоичном виде выглядело как единица и 1026 нулей, т.е. всего 1027 разрядов).

Каждые три двоичных разряда дают один восьмеричный. Разбивают число начиная от десятичной запятой. То есть, можно поделить 1026 / 3 = 342 восьмеричных разряда, и ещё один разряд (идущий в начале числа)- там уже не обязательно иметь три разряда, всё равно он даст на выходе один восьмеричный разряд. Итого 342 + 1 = 343 восьмеричных разряда.

Другими словами, можно взять общее число двоичных разрядов (1027), поделить на три и если число получилось дробное- то округлить вверх (т.е. не обычное округление, а всегда вверх, с избытком).

4,8(95 оценок)
Открыть все ответы
Ответ:
usereldoc9857
usereldoc9857
19.01.2023
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

type
  Exams=record
    fam:string;
    nam:string;
    ball:=new integer[4];
  end;
    
begin
  var Ls:=new List<Exams>;
  var b:Exams; // буфер
  ReadLines('marks.csv')
      .Foreach(t->begin
          var a:=t.ToWords(',');
          (b.fam,b.nam):=(a[0],a[1]);
          b.ball:=a[2:].Select(q->q.ToInteger).ToArray;
          Ls.Add(b)
          end);
  var n:=Ls.Count;
  // а
  var m:=Arr(0,0,0,0);
  var c:=Ls.Select(t->t.Ball);
  foreach var d in c do
    for var i:=0 to 3 do m[i]+=d[i];
  Writeln('Средние по предметам: ', m[0]/n:0:1,', ',m[1]/n:0:1,
      ', ',m[2]/n:0:1,', ',m[3]/n:0:1);
  // б
  var max:=Ls.Select(t->t.Ball.Sum).Max;
  Writeln(NewLine,'Максимальная сумма ',max);
  // в
  Writeln(NewLine,'Учащиеся, набравшие максимальную сумму :');
  Ls.Where(t->t.Ball.Sum=max).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine);
  // г
  Writeln(NewLine,'Получили хотя бы одну двойку:');
  Ls.Where(t->t.Ball.Any(t->t=2)).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine)
end.

Пример:
Средние по предметам: 3.3, 3.3, 4.0, 2.0

Максимальная сумма 13

Учащиеся, набравшие максимальную сумму :
Алескеров Имран
Бармин Владимир

Получили хотя бы одну двойку:
Александрова Маргарита
Алескеров Имран
Бармин Владимир

Замечание:
В PascalABC.NET 3.3 динамические массивы реализованы с списков, поэтому было принято решение использовать именно список, позволяющий не знать заранее размера массива и добавлять элементы по мере необходимости. Если возникнет причуда иметь данные именно в массиве, перед end. добавьте строку var x:=Ls.ToArray; - она создаст из списка массив х.
4,7(52 оценок)
Ответ:
Аленчік
Аленчік
19.01.2023
целый целый R := A + B
тип результата: целый

целый целый R := A - B
тип результата: целый

целый целый R := A * B
тип результата: целый 

целый целый R := A / B
тип результата: вещественный

целый целый A > B
тип результата: логический (true/false)

целый целый A < B
тип результата: логический (true/false)

вещественный вещественный R := A + B
тип результата: вещественный

вещественный вещественный R := A - B
тип результата: вещественный

вещественный вещественный R := A * B
тип результата: вещественный

вещественный вещественный R := A / B
тип результата: вещественный

вещественный вещественный A > B
тип результата: логический (true/false)

вещественный вещественный A < B
тип результата: логический (true/false)
4,6(40 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ