Дистанционная подготовка к Всероссийской олимпиаде по информатике Преподаватели: к.ф.-м.н., заведующий кафедрой ВТиКГ ДВГУПС Пономарчук Юлия Викторовна E-mail: yulia.ponomarchuk@gmail.com ст. преподаватель кафедры ВТиКГ ДВГУПС Сухобок Юрий Андреевич E-mail: khvyus@gmail.com Занятие 3. Системы счисления. Задачи на арифметические алгоритмы Позиционные системы счисления (ПСС) Система счисления – способ записи чисел Цифры – символы, с помощью которых записываются целые неотрицательные числа Алфавит – совокупность цифр Позиционная система счисления – система счисления, к которой количественный эквивалент цифры зависит от ее положения в записи числа 5047 = 5*1000 + 0*100 + 4*10 + 7*1 Позиционные системы счисления Базис ПСС – последовательность чисел, каждое из которых задает «вес» соответствующего разряда Традиционная ПСС – система счисления, базис которой образуют члены геометрической прогрессии, знаменатель которой P – натуральное число, большее единицы, а значения цифр – целые неотрицательные цифры …, P-3, P-2, P-1, 1, P1, P2, P3, … P – основание P-ричной системы счисления Примеры нетрадиционных СС Фибоначчиева система счисления Алфавит: цифры 0 и 1 Базис: последовательность чисел Фибоначчи 1, 2, 3, 5, 8, 13, 21, 34, … Факториальная система счисления Алфавит: количество цифр увеличивается с ростом номера разряда Базис: 1!, 2!, 3!, … Первые числа в 2-СС, 8-СС, 16-СС 10 2 8 16 10 2 8 16 0 0 0 0 9 1001 11 9 1 1 1 1 10 1010 12 A 2 10 2 2 11 1011 13 B 3 11 3 3 12 1100 14 C 13 1101 15 D 14 1110 16 E 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 15 1111 17 F 8 1000 10 8 16 10000 20 10 Арифметические операции в ПСС • Сложение • Вычитание • Умножение • Деление (обычные правила выполнения операций «в столбик», подробнее рассмотрим в следующей лекции) Перевод целых чисел из P-СС в 10-СС an…a2a1a0 P = an*Pn + … + a2*P2 + a1*P1 +a0*P0 B0F916 = [1110][010][1510][910] = = 1110*16103 + * 1510 16101 + 910 *16100 = 4530510 Схема Горнера: an P an 1P n n 1 ... a1P a0 1 an P n 1 an 1 P n 2 ... a1 P a0 a P a ... n n 1 P an2 P an3 P ... a1 P a0 Перевод целых чисел из 10-СС в P-СС Способ деления на P с остатком Арифметика остатков (a+b) mod p = ((a mod p) + (b mod p)) mod p (a-b) mod p = (p + (a mod p) – (b mod p)) mod p при а>b (a*b) mod p = ((a mod p) * (b mod p)) mod p Аналогичной формулы для деления нет! Пример 1. Плиты в треугольнике Великая треугольная область (ВТО) представляет собой прямоугольный треугольник. Его катеты имеют целые длины m и n (2≤m,n≤2*109) и лежат на осях координат. Нужно покрыть как можно большую часть территории ВТО квадратными плитами размером 1х1. Плиты должны плотно прилегать одна к другой и к катетам ВТО, не выходя за пределы области. Резать плиты нельзя. Плиты поставляются только контейнерами по p штук (100≤p≤10000); используется необходимый минимум количества контейнеров. Вычислить, сколько плит из последнего контейнера останется после покрытия ВТО. Пример 1. Плиты в треугольнике K(m,n) – количество используемых плит ВТО размером m на n. 1. Рассмотрим длины катетов, имеющие общий делитель t (числа вида m=pt, n=qt) 2. Количество используемых плит описывает формула: Пример 1. Плиты в треугольнике K(m,n) – количество используемых плит ВТО размером m на n. 1. Рассмотрим длины катетов, имеющие общий делитель t (числа вида m=pt, n=qt) 2. Количество используемых плит описывает формула: Пример 1. Плиты в треугольнике Пример 1. Плиты в треугольнике Если длины катетов взаимно просты: Пример 2. Нули в конце факториала Заданы натуральные числа N и p (оба в диапазоне от 2 до 109). Найти количество нулей в конце числа N!, записанного в системе счисления с основанием p. Пример. Вход: 7 10 Выход: 1 (7! записывается в десятичной системе счисления как 5040, в конце этой записи один ноль) Пример 2. Нули в конце факториала