сделать 1. Что выведет данный фрагмент программы k = 1 A[2] = A[k] + 2*A[k-1] + A[2*k+1] print( A[2]+A[4] )
2. Какое значение будет выведено при использовании следующего оператора?
print( A[A[0]] )
3. Какое значение получит элемент A[4] при выполнении следующего фрагмента программы?
for i in range(5):
A[i] = A[i] + i
** (* - любой из символов В или С)
*А*
ААА*АА*
АА*ААА*
А**
** (пока 6 вариантов)
Далее - аналогично:
**А
ААА*А*А
АА*АА*А
А*ААА*А
**А (ещё 5 вариантов)
ААА**АА
АА*А*АА
А*АА*АА
*ААА*АА (ещё 4 варианта)
АА**ААА
А*А*ААА
*АА*ААА (ещё 3 варианта)
А**
*А* (ещё 2)
** (ещё 1)
Итого: 6+5+4+3+2+1=21
Так как на месте * могут быть любые из 2 символов В или С, то это даст ещё по 4 варианта для каждого случая.
Можно здесь, конечно, комбинаторику вспомнить.
Итого: 21*4 = 84
Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны — это сложение, вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем другим позиционным системам счисления. Только таблицами сложения и умножения надо пользоваться особыми для каждой системы.
С л о ж е н и е
Таблицы сложения легко составить, используя Правило Счета.
Сложение в двоичной системе
Сложение в восьмеричной системе
Сложение в шестнадцатиричной системе
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево.
Пример 1. Сложим числа 15 и 6 в различных системах счисления.
Шестнадцатеричная: F16+616
ответ: 15+6 = 2110 = 101012 = 258 = 1516.
Проверка. Преобразуем полученные суммы к десятичному виду:
101012 = 24 + 22 + 20 = 16+4+1=21,
258 = 2 . 81 + 5 . 80 = 16 + 5 = 21,
1516 = 1 . 161 + 5 . 160 = 16+5 = 21.
Пример 2. Сложим числа 15, 7 и 3.
Шестнадцатеричная: F16+716+316
ответ: 5+7+3 = 2510 = 110012 = 318 = 1916.
Проверка:
110012 = 24 + 23 + 20 = 16+8+1=25,
318 = 3 . 81 + 1 . 80 = 24 + 1 = 25,
1916 = 1 . 161 + 9 . 160 = 16+9 = 25.
Пример 3. Сложим числа 141,5 и 59,75.
ответ: 141,5 + 59,75 = 201,2510 = 11001001,012 = 311,28 = C9,416
Проверка. Преобразуем полученные суммы к десятичному виду:
11001001,012 = 27 + 26 + 23 + 20 + 2-2 = 201,25
311,28 = 3 . 82 + 181 + 1 . 80 + 2 . 8-1 = 201,25
C9,416 = 12 . 161 + 9 . 160 + 4 . 16-1 = 201,25
В ы ч и т а н и е
Пример 4. Вычтем единицу из чисел 102, 108 и 1016
Пример 5. Вычтем единицу из чисел 1002, 1008 и 10016.
Пример 6. Вычтем число 59,75 из числа 201,25.
ответ: 201,2510 - 59,7510 = 141,510 = 10001101,12 = 215,48 = 8D,816.
Проверка. Преобразуем полученные разности к десятичному виду:
10001101,12 = 27 + 23 + 22 + 20 + 2-1 = 141,5;
215,48 = 2 . 82 + 1 . 81 + 5 . 80 + 4 . 8-1 = 141,5;
8D,816 = 8 . 161 + D . 160 + 8 . 16-1 = 141,5.
У м н о ж е н и е
Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты перемножения и сложения однозначных чисел необходимо заимствовать из соответствующих рассматриваемой системе таблиц умножения и сложения.
Умножение в двоичной системе
Умножение в восьмеричной системе
Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям.
Пример 7. Перемножим числа 5 и 6.
ответ: 5 . 6 = 3010 = 111102 = 368.
Проверка. Преобразуем полученные произведения к десятичному виду:
111102 = 24 + 23 + 22 + 21 = 30;
368 = 381 + 680 = 30.
Пример 8. Перемножим числа 115 и 51.
ответ: 115 . 51 = 586510 = 10110111010012 = 133518.
Проверка. Преобразуем полученные произведения к десятичному виду:
10110111010012 = 212 + 210 + 29 + 27 + 26 + 25 + 23 + 20 = 5865;
133518 = 1 . 84 + 3 . 83 + 3 . 82 + 5 . 81 + 1 . 80 = 5865.
Д е л е н и е
Деление в любой позиционной системе счисления производится по тем же правилам, как и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулем или единицей.
Пример 9. Разделим число 30 на число 6.
ответ: 30 : 6 = 510 = 1012 = 58.
Пример 10. Разделим число 5865 на число 115.
Восьмеричная: 133518 :1638
ответ: 5865 : 115 = 5110 = 1100112 = 638.
Проверка. Преобразуем полученные частные к десятичному виду:
1100112 = 25 + 24 + 21 + 20 = 51; 638 = 6 . 81 + 3 . 80 = 51.
Пример 11. Разделим число 35 на число 14.
Восьмеричная: 438 : 168
ответ: 35 : 14 = 2,510 = 10,12 = 2,48.
Проверка. Преобразуем полученные частные к десятичному виду:
10,12 = 21 + 2 -1 = 2,5;
2,48 = 2 . 80 + 4 . 8-1 = 2,5.