Главная › Лекции › Тимофей Хирьянов (МФТИ) — Алгоритмы на Python 3

Системы счисления и однопроходные алгоритмы в Python

Лекция объясняет позиционные системы счисления, перевод между ними, работу с числами в Python и основы однопроходных алгоритмов.

Тимофей Хирьянов⏱ 74 минОткрыть на YouTube ↗
Пройти весь тест — 9 вопросов →

Бесплатно, нужен вход через Google. Готовый тест не тратит часовой лимит.

О чём лекция

Лекция начинается с унарной и непозиционных систем счисления, их преимуществ и ограничений. Затем вводится различие между цифрой и числом, объясняется принцип позиционной записи: значение цифры определяется её разрядом и степенью основания системы. На примерах разбираются двоичная, четверичная, восьмеричная и шестнадцатеричная системы, переполнение разрядов и незначащие нули. Показано, почему двоичная система удобна компьютерам, а шестнадцатеричная — программистам: одна шестнадцатеричная цифра соответствует четырём двоичным разрядам, а две — одному байту.

Рассматриваются способы перевода чисел: развёрнутая запись, схема Горнера и последовательное деление с остатком для получения цифр справа налево. Объясняется быстрый переход между родственными системами через группировку двоичных цифр в диады и триады. В Python показаны литералы для двоичных, восьмеричных и шестнадцатеричных чисел, функции bin, oct и hex, а также int со строкой и основанием от 2 до 36. В завершение разбирается программный алгоритм извлечения цифр через остаток и целочисленное деление, после чего даётся обзор однопроходных алгоритмов для подсчёта, суммы, произведения, максимума и поиска элемента в последовательности без хранения всех её значений.

Ключевые идеи

Примеры вопросов

Как правильно представить десятичное число 5047 в виде суммы вкладов отдельных цифр, если вес цифры определяется количеством разрядов справа от неё?

  1. A5·10^3 + 0·10^1 + 4·10^2 + 7·10^0
  2. B5·10^4 + 0·10^3 + 4·10^2 + 7·10^1
  3. C5·10^0 + 0·10^1 + 4·10^2 + 7·10^3
  4. D5·10^3 + 0·10^2 + 4·10^1 + 7·10^0
Показать ответ

Верный ответ: D. У первой цифры числа 5047 три разряда справа, у второй — два, у третьей — один, у последней — ни одного. Поэтому показатели степеней равны 3, 2, 1 и 0 соответственно.

Какое утверждение корректно описывает переход от унарной системы счисления к двоичной в контексте позиционных систем?

  1. AДвоичная система выбирается потому, что в ней любое число записывается одной цифрой
  2. BДвоичная система отличается от унарной только названием символов, но не количеством используемых цифр
  3. CДвоичная система использует два различных символа и поэтому становится первой системой с позиционным принципом записи
  4. DДвоичная система обязательна для записи всех чисел без использования разрядов
Показать ответ

Верный ответ: C. Два символа — минимальное количество, при котором можно построить позиционную систему; унарная система с одним символом для этого не подходит.

Пройти весь тест — 9 вопросов →

Свой тест по любой лекции

Вставьте ссылку на видео — LearnReplay сделает тест на понимание.

Создать тест →