Главная страница
Навигация по странице:

  • Решение (использование программы в среде Pascal ABC . NET , А. Агафонцев)

  • ЦУЙУ. Позиционные системы счисления


    Скачать 0.86 Mb.
    НазваниеПозиционные системы счисления
    Дата15.09.2022
    Размер0.86 Mb.
    Формат файлаdoc
    Имя файлаege14 (1).doc
    ТипДокументы
    #678195
    страница3 из 15
    1   2   3   4   5   6   7   8   9   ...   15

    Ещё пример задания:


    Р-24. (М.В. Кузнецова) Значение арифметического выражения: 6410 + 290 - 16 записали в системе счисления с основанием 8. Сколько цифр «7» содержится в этой записи?

    Решение:

    1. Приведём все числа к степеням восьмерки, учитывая, что 16 = 64 - 48 =82-6∙81

    6410 + 290 - 16 = (82)10 + 23∙30 – (82 – 48) = 820 + 830 – 82 + 6∙81

    1. Перепишем выражение, располагая степени восьмёрки в порядке убывания:
      820 + 830 – 82 + 6∙81 = 830 + 820 – 82 + 6∙81

    2. Очевидно, что «семёрки» в восьмеричной записи значения выражения возникнут только за счёт вычисления разности 820 – 82, их количество равно 20-2=18

    3. Ответ: 18.

    Решение (использование программы в среде Pascal ABC.NET, А. Агафонцев):

    1. В среде Pascal ABC.NET при использовании типа BigInteger задача может быть решена с помощью программы:

    var

    a: BigInteger;

    k: int64;

    begin

    a := BigInteger.Pow(64, 10) + BigInteger.Pow(2, 90) - 16;

    k := 0;

    while (a > 0) do

    begin

    if (a mod 8 = 7) then

    k := k + 1;

    a := a div 8;

    end;

    writeln(k);

    end.

    1. Ответ: 18.

    2. Ещё одно решение на PascalABC.NET (П.Е. Финкель)

    begin

    var k:=0;

    var x:=64bi**10+2bi**90-16;

    while x>0 do begin

    if x mod 8=7 then k+=1;

    x:=x div 8;

    end;

    println(k);

    end.

    Решение (программа на Python, Б.С. Михлин):

    1. если доступна среда программирования на Python, можно написать программу, которая использует встроенную арифметику длинных чисел:

    x = 64**10 + 2**90 - 16

    print( oct(x).count('7') )

    1. ответ: 18.

    Ещё пример задания:


    Р-23. (М.В. Кузнецова) Значение арифметического выражения: 99 – 39 + 919 – 19 записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?

    Решение:

    1. Приведём все числа к степеням тройки, учитывая, что 19=27-8=33-(2∙31+2∙30):

    99 – 39 + 919 – 19= (32)9 – 39 + (32)19 – (33 – (2∙31 + 2∙30)) = 318 – 39 + 338 – 33 + 2∙31 + 2∙30

    1. Перепишем выражение, располагая степени тройки в порядке убывания:
      318 – 39 + 338 – 33 + 2∙31 + 2∙30 = 338 + 318 – 39 – 33 + 2∙31 + 2∙30

    2. Сначала рассмотрим часть выражения, в которой имеется два расположенных подряд «минуса»: 318 - 39 ‑ 33:

      1. найдём разность двух крайних чисел: 318 – 33, в её троичной записи 18 – 3=15 «двоек» и 3 «нуля»;

      2. вычтем из этого числа значение 39: одна из «двоек» (на 10-й справа позиции) уменьшится на 1, остальные цифры не изменятся;

      3. итак, троичная запись разности 318 – 39 – 33 содержит 15 – 1=14 «двоек», одну «единицу» и 3 «нуля»

    3. Прибавим к полученному значению сумму: 2∙31 + 2∙30 = 223. В троичной записи результата два крайних справа нуля заменяются на «двойки», остаётся один ноль. Общее количество «двоек»: 14+2=16.

    4. Прибавление значения 338 не изменит количества «двоек» в троичном числе: слева от имеющихся цифр появятся ещё 38 – 18=20 «нулей» и одна «единица» – на 39-й справа позиции.

    5. Итак, результат, записанный в троичной системе, содержит 39 цифр. Его состав: 16 «двоек», 2 «единицы» (их позиции: 39-я и 10-я справа) и 21 «нуль» (39-16-2=21).

    6. Ответ: 16.
    1   2   3   4   5   6   7   8   9   ...   15


    написать администратору сайта