Формулы и лайфхаки
Информатика · 208
Все формулы этого курса и простые способы их запомнить — на одной странице.
1Компьютер: информация, аппаратное и программное обеспечениеНачальный
Информация, её виды и информационные процессы
К урокуУстройство компьютера: процессор, память и материнская плата
К уроку- Nчисло тактов
- fтактовая частота, Гц (1 ГГц = 1000 МГц = 10⁹ Гц)
- tвремя, с
Герц — это «один раз в секунду»: частота показывает, сколько тактов в секунде.
- nразрядность шины адреса (число битов)
- Nчисло ячеек памяти (байтов), к которым можно обратиться
Если каждая ячейка — 1 байт, можно обратиться к N байтам памяти.
Устройства ввода и вывода
К уроку- Nчисло пикселей на экране
- a, bчисло пикселей по горизонтали и по вертикали (разрешение a × b)
Число пикселей — произведение двух чисел разрешения.
- dдиагональ экрана
Чтобы перевести дюймы в сантиметры, умножьте на 2,54.
- tвремя печати, мин
- Nчисло страниц
- vскорость принтера, стр./мин
Когда два принтера работают вместе, их скорости складываются.
Файловые системы и место на диске
К уроку- Vинформационный объём (размер) файла
- cразмер кластера (в тех же единицах, что и V)
- kчисло кластеров, занятых файлом
- ⌈ ⌉округление вверх: если есть дробная часть, берут следующее целое
- Vdiskместо, занимаемое файлом на диске
Место на диске — наименьшее кратное размера кластера, не меньшее размера файла.
- ΔVнеиспользуемое место в последнем кластере файла
Для каждого файла пустое место — от 0 до c − 1 байт; в среднем около половины кластера.
2Текстовые и табличные процессорыНачальный
Текстовые процессоры: редактирование, форматирование и клавиши
К урокуЭлектронная таблица: адреса, диапазоны и формулы
К уроку- Nчисло ячеек в диапазоне
- S₁, S₂номера первого и последнего столбцов (A = 1, B = 2, …)
- R₁, R₂номера первой и последней строк
Число столбцов × число строк. Не забывай «+1»: от B до F — 5 столбцов, а не 4.
- Δсна сколько столбцов формулу сдвинули вправо (+) или влево (−)
- Δrна сколько строк вниз (+) или вверх (−)
Правило применяют к каждой части адреса отдельно. Часть, перед которой стоит $, не меняется. При вырезании и вставке (Ctrl+X → Ctrl+V) адреса в формуле вообще не меняются.
Функции в электронной таблице
К уроку- Dдиапазон (или список аргументов)
- COUNT(D)количество чисел в D — пустые и текстовые ячейки не считаются
Среднее — это сумма, делённая на число ячеек с числами, а не на число всех ячеек.
- ч, м, счасы, минуты, секунды
- 24, 1440, 86400число часов, минут и секунд в сутках
TIME возвращает долю суток (от 0 до 1). Умножив на 24, получишь часы, на 24 · 60 — минуты.
- αугол в градусах
- π / 180π / 1801° в радианах ≈ 0,01745
180° = π радиан. Для обратного перевода в Excel есть функция DEGREES.
- a, bконцы промежутка; RAND() · (b − a) растягивает длину, + a сдвигает промежуток
Если нужно целое число, добавляют функцию целой части INT: =INT(RAND()*6)+1 даёт числа от 1 до 6, как игральная кость.
Диаграммы в электронной таблице и их элементы
К уроку- xзначение ячейки, соответствующей сектору
- Sсумма всех значений диапазона
- pдоля сектора в процентах
- αцентральный угол сектора
Проценты всех секторов в сумме дают 100%, углы — 360°. Если меняется одно значение, меняется и S, поэтому меняются все проценты.
3Кодирование и измерение информацииСредний
Измерение информации: бит, байт и единицы измерения
К уроку- Nчисло различных кодируемых вариантов (символов, цветов, уровней…); для алфавита — мощность алфавита
- iчисло бит в коде одного варианта — количество информации, которое несёт один вариант (символ)
Из i бит составляется 2ⁱ различных кодов. Если известно N, то i = log₂N; если N не степень двойки, i округляют вверх.
- 2³ = 8множитель между байтом и битом
- 2¹⁰ = 1024множитель между соседними единицами (байт → Кбайт → Мбайт → Гбайт)
В битах показатели равны 3, 13, 23, 33, 43: у каждой следующей единицы показатель больше на 10.
- Iинформационный объём сообщения (бит)
- Kчисло символов в сообщении
- iинформационный объём одного символа (бит); N = 2ⁱ
Для текста из нескольких страниц K = число страниц · строк на странице · символов в строке.
- Iобъём переданной информации (бит)
- vскорость передачи (бит/с)
- tвремя передачи (с)
Отсюда t = I / v и v = I / t. Сначала переведи объём в биты, а время — в секунды.
Кодирование текстовой информации
К уроку- Iинформационный объём текста
- Kчисло всех символов текста: буквы, цифры, пробелы, знаки препинания
Это частный случай формулы I = K · i: в ASCII i = 8, в UNICODE i = 16. Один и тот же текст в UNICODE занимает вдвое больше места, чем в ASCII.
- iчисло бит на один символ
- Iобъём текстовой части (бит); объём рисунков сначала вычитают
- Kчисло символов
- Nмощность алфавита
Ключ к обратным задачам: сначала выдели объём текста, потом раздели на число символов.
Компьютерная графика: кодирование растровых и векторных изображений
К уроку- Nчисло цветов (оттенков) в палитре
- iглубина цвета — число бит в коде одного пикселя
Если палитра не степень двойки, i округляют вверх: для 100 цветов нужно 7 бит (2⁷ = 128). В заданиях DİM это звучит так: «каждый цвет кодируется минимально возможным числом бит».
- Vинформационный объём растрового изображения (бит)
- Wчисло пикселей по ширине
- Hчисло пикселей по высоте
- iглубина цвета (бит), N = 2ⁱ
Сначала найди i по палитре, затем перемножь и переведи биты в нужные единицы: 2¹³ бит = 1 Кбайт, 2²³ бит = 1 Мбайт.
- W₂ / W₁, H₂ / H₁W₂ / W₁, H₂ / H₁во сколько раз изменились ширина и высота
- i₂ / i₁i₂ / i₁отношение глубин цвета — не палитр!
Когда палитра уменьшается в 2ᵏ раз, глубина цвета уменьшается на k бит, а объём — не в 2ᵏ раз, а в i₁ / (i₁ − k) раз.
Кодирование звуковой и видеоинформации
К уроку- Vобъём звукового файла (бит)
- fчастота дискретизации (Гц)
- iглубина кодирования (бит)
- tдлительность записи (с)
- kчисло каналов: моно 1, стерео 2
По сути это «число измерений × биты одного измерения»: f · t · k измерений по i бит.
- W · H · iобъём одного кадра (бит), как у растрового изображения
- nчастота кадров (кадр/с)
- tдлительность видео (с)
Если есть звуковая дорожка, прибавь и её объём f · i · t · k. Формула даёт объём несжатого видео.
- kкоэффициент сжатия — во сколько раз уменьшился файл
- V₀объём до сжатия
- Vобъём сжатого файла
Для потокового звука и видео вместо объёмов можно сравнивать скорости в бит/с.
4Системы счисления и логикаСредний
Системы счисления: позиционные системы и двоичная система
К уроку- Nзначение числа в десятичной системе
- bоснование системы (b ≥ 2)
- aᵢцифра в i-м разряде, 0 ≤ aᵢ ≤ b − 1
- kномер старшего разряда: количество цифр − 1
Развёрнутая запись числа. Разряды нумеруются справа налево, начиная с 0. Вычислив эту сумму, мы переводим число из любой системы в десятичную.
- kколичество цифр
- bоснование системы
Наибольшее и наименьшее k-значные числа в системе с основанием b. Всего таких чисел bᵏ − bᵏ⁻¹ = (b − 1)·bᵏ⁻¹.
- qнеполное частное
- rостаток — последняя цифра числа в системе с основанием b
Метод деления работает для любого основания: делим на b. Короткое следствие: двоичное число, оканчивающееся на 0, чётное, а на 1 — нечётное.
- nпоказатель степени
Число нулей = количество цифр − число единиц. Например, 2⁹ − 1 = 511 = 111111111₂ — девять единиц.
- Nнатуральное число
- kколичество цифр в двоичной записи N
Если неравенство выполняется, в двоичной записи N ровно k цифр. Например, 512 ≤ 1000 < 1024, поэтому 1000 = 1111101000₂ — десятизначное число.
Восьмеричная и шестнадцатеричная системы счисления
К уроку- Nзначение числа в десятичной системе
- aᵢвосьмеричная цифра в i-м разряде
Развёрнутая запись восьмеричного числа. При обратном переводе делим на 8: остаток — последняя цифра.
- aᵢшестнадцатеричная цифра: 0–9 или A = 10, …, F = 15
Развёрнутая запись шестнадцатеричного числа. При переводе из десятичной делим на 16; остатки 10–15 записываются одной буквой.
- mчисло битов на одну цифру
То же правило работает для 4 = 2²: в 4-ричной системе биты группируют по два.
- nколичество двоичных цифр
- ⌈x⌉наименьшее целое число, не меньшее x
Если n делится на 4 (на 3), округлять не нужно: 2²⁴ битов → 2²⁴ : 2² = 2²² шестнадцатеричных цифр.
Арифметические действия в различных системах счисления
К уроку- sсумма цифр разряда и переноса
- bоснование системы
- rзаписываемая цифра, 0 ≤ r ≤ b − 1
- qперенос
При сложении s ≤ 2(b − 1) + 1, поэтому перенос всегда 0 или 1; при умножении q может быть больше.
- aцифра уменьшаемого
- cцифра вычитаемого
- bоснование системы
Самый частый случай в двоичной системе: 10₂ − 1₂ = 1₂, то есть 2 − 1 = 1.
- Nчисло, записанное в системе с основанием b
- kсдвиг (количество разрядов)
Общий вид десятичного правила 37·100 = 3700. В двоичной системе умножить на 2 — сдвинуть на один разряд влево, разделить на 2 — на один разряд вправо.
- a, cслагаемые (целые числа без знака)
- nчисло битов в ячейке
- modостаток от деления
Если сумма не больше 2ⁿ − 1, переполнения нет и результат верный.
Системы счисления: задачи с неизвестным основанием
К уроку- xнеизвестное основание — натуральное число, x ≥ 2
- aᵢцифры числа
Условие на цифры: основание больше всех цифр равенства. Корни уравнения, не удовлетворяющие этому условию, отбрасываются.
- rпоследняя цифра N в системе с основанием b (остаток)
- b | MM делится на b без остатка
Последняя цифра = остаток от деления N на основание.
- kколичество цифр N в системе с основанием b
Выбирают все натуральные основания b ≥ 2, удовлетворяющие этому двойному неравенству.
- nоснование системы
- mнаибольшая цифра системы
Например, mmₙ = (n − 1)·n + (n − 1) = n² − 1: 77₈ = 63, 66₇ = 48.
- n, mпоказатели степеней
Например, 2⁸ − 2³ = 256 − 8 = 248 = 11111000₂: пять единиц, три нуля.
- a, cпоказатели степеней, a > c
При a − c ≥ 2 три степени различны, поэтому в двоичной записи квадрата ровно три единицы; количество цифр равно 2a + 1.
5МоделированиеСредний
Модели и моделирование
К уроку- S₀начальная сумма (манаты)
- pгодовой процент банка (%)
- nчисло лет
- Sсумма на счёте через n лет
Математическая модель банковского вклада: каждый год сумма увеличивается в (1 + p/100) раза.
- h₀начальная высота (м)
- gускорение свободного падения, ≈ 9,8 м/с²
- tвремя от начала падения (с)
- hвысота в момент t (м)
Динамическая модель свободного падения; допущение: сопротивлением воздуха пренебрегаем.
Табличные информационные модели: решение логических задач с помощью таблиц
К уроку- nчисло объектов (сёл, команд)
Число различных пар из n объектов: в симметричной таблице нужно ровно столько разных чисел, а ненулевых клеток вдвое больше — n · (n − 1).
Правило взаимно однозначного соответствия: в таблице n × n в конце n знаков «+» и n · (n − 1) знаков «–».
Контрольная сумма: если каждый из 6 человек купил 2 вещи, то сумма по столбцам тоже должна быть 6 · 2 = 12.
- a₁, …, aₙчисла (количество страниц, баллы)
- nколичество чисел
Среднее арифметическое. Найти его и понять, какому объекту оно соответствует, — часто первый шаг задачи на порядок.
Древовидные информационные модели
К уроку- nчисло узлов дерева
- mчисло рёбер (ветвей)
Каждый узел, кроме корня, соединён со своим родителем ровно одним ребром, поэтому рёбер на одно меньше, чем узлов.
- диск:\корневая папка диска, например C:\
- папка₁ … папкаₖпапки на пути от корня к файлу, сверху вниз
- имя.расширениеимя и расширение файла
Полное имя файла — единственный путь от корня к файлу.
- kчисло потомков у каждого внутреннего узла (у всех одинаковое)
- hвысота дерева; все листья на уровне h
- nобщее число узлов
Полное дерево: на каждом уровне узлов в k раз больше. При k = 2 n = 2ʰ⁺¹ − 1.
Графы как информационные модели: матрица смежности и число путей
К уроку- deg(Aᵢ)степень i-й вершины
- mчисло рёбер
Правило «рукопожатий»: каждое ребро принадлежит двум вершинам и учитывается в сумме степеней дважды. Значит, сумма степеней всегда чётна.
- nчисло вершин
- mчисло рёбер в полном графе
Полный граф: любые две вершины соединены (например, каждая команда играет с каждой по одному разу).
- N₁число единиц в матрице смежности
- mчисло рёбер (дуг)
В орграфе дуга X → Y даёт единицу только в одной клетке — на пересечении строки X и столбца Y; такая матрица обычно несимметрична.
- N(X)число различных путей из A в X
- Y₁, …, Yₖвсе вершины, из которых в X ведёт стрелка (прямая дорога)
В начальную вершину пишут 1; число в каждой вершине — сумма чисел в вершинах, откуда в неё входят стрелки.
- N(A → D)число путей из A в D
- N(D → K)число путей из D в K (пишем 1 в D и считаем заново)
Пути через заданную вершину: каждый вариант первой части сочетается с каждым вариантом второй, поэтому числа перемножаются.
6АлгоритмыСредний
Алгоритм, его свойства и способы описания
К уроку- переменнаяместо, куда записывается новое значение; старое стирается
- выражениевычисляется по текущим значениям переменных
Правило присваивания: сначала вычисляется правая часть, затем результат записывается в переменную слева
Разветвляющиеся алгоритмы
К уроку- Dдискриминант: D > 0 — два корня, D = 0 — один корень, D < 0 — действительных корней нет
- a, b, cкоэффициенты уравнения a·x² + b·x + c = 0 (a ≠ 0)
Три случая разделяют два ромба: сначала D > 0, затем D = 0
- %остаток от деления; «год % 4 = 0» — год делится на 4
- ≠не равно
Правило високосного (366-дневного) года григорианского календаря — классическое составное условие
Циклические алгоритмы и таблица трассировки
К уроку- Sсумма; начальное значение 0
- Pпроизведение; начальное значение 1 (с 0 оно навсегда останется 0)
- kколичество (счётчик); начальное значение 0
Три «накопительные» переменные цикла и их начальные значения
- n % 10последняя цифра числа (остаток от деления на 10)
- n // 10число без последней цифры (целочисленное деление)
Цикл по цифрам: пока n > 0, берём последнюю цифру и отбрасываем её
- a₀, b₀начальные значения переменных (a₀ < b₀)
- p, qприрост a и уменьшение b на каждом шаге
- kчисло повторений цикла «a < b»
- ⌈ ⌉округление вверх: 10,875 → 11
Цикл останавливается, как только a ≥ b: разрыв сокращается на p + q за шаг
Построение блок-схем: письменные задания
К уроку- iномер слагаемого, от 1 до N
- 2·i − 1знаменатель i-го слагаемого: 1, 3, 5, 7, …
- kзнак: начинается с 1 и на каждом шаге становится −k (1, −1, 1, …)
Общий член знакочередующегося ряда: знак хранится в отдельной переменной
- xцелое число, вводимое на каждом шаге цикла
- yзначение функции: ромб выбирает одну из двух формул
Задача: вычислить y для n чисел и вывести сумму значений, больших 20
Алгоритмы сортировки
К уроку- Kчисло сравнений в худшем случае
- nколичество элементов в списке
7Программирование на Python (школьный курс)Средний
Языки программирования и Python: переменные, ввод и вывод
К уроку- aделимое (целое число)
- bделитель, b > 0
- a // bнеполное частное
- a % bостаток
Деление с остатком: // и % всегда работают в паре. Проверка: частное, умноженное на делитель, плюс остаток должно дать делимое.
Приоритет операций (убывает слева направо). Операции одного уровня * / // % выполняются слева направо, а ** — справа налево: 2 ** 3 ** 2 = 2 ** 9 = 512. ** сильнее унарного минуса: -2 ** 2 = −4.
- nтрёхзначное натуральное число
- aцифра сотен
- bцифра десятков
- cцифра единиц (последняя)
n % 10 всегда даёт последнюю цифру, а n // 10 — число без последней цифры. Цифры чисел любой длины с помощью циклов разбираются в уроке «Операции над числами: цифры, делители и простые числа».
Условный оператор: if, elif, else и составные условия
К урокуПриоритет убывает слева направо: сначала арифметика, затем сравнения, потом not, and и в самом конце or. Сомневаешься — ставь скобки: программа станет и правильной, и понятной.
Операторы цикла: for, while, шаг цикла, break, continue и вложенные циклы
К уроку- Nчисло итераций; если выражение меньше или равно 0, цикл не выполняется ни разу
- aначальное значение
- bконечное значение (не входит)
- dшаг (может быть отрицательным)
- ⌈x⌉x, округлённое вверх до ближайшего целого
Число итераций range(a, b, d). Последнее значение переменной цикла равно a + (N − 1) · d. При шаге 1 просто N = b − a; для всех целых чисел отрезка [a; b] пишут range(a, b + 1), и N = b − a + 1.
- Kколичество натуральных чисел отрезка [a; b], кратных m
- a, bконцы отрезка (натуральные числа)
- mделитель
Подсчёт без цикла: на [1; b] кратных m ровно b // m, вычитаем те, что лежат на [1; a − 1]. Именно так считают вместо трассировки циклов по большим промежуткам.
- Nобщее число выполнений внутреннего тела
- N₁итерации внешнего цикла
- N₂итерации одного прохода внутреннего цикла
Формула произведения работает, если внутренний цикл не зависит от внешней переменной. Если зависит, находим число внутренних итераций для каждой внешней отдельно и складываем.
Операции над числами: цифры, делители и простые числа
К уроку- dпоследняя цифра (0…9)
- %остаток от деления
- //целочисленное деление: дробная часть отбрасывается, число становится на одну цифру короче
Две главные команды цикла по цифрам. Цикл работает с условием while n > 0:.
- n // pow(10, k) % 10k-я цифра справа (k = 0 — единицы, 1 — десятки, 2 — сотни)
- n % pow(10, k)число из последних k цифр
- n // pow(10, k)число, оставшееся после отбрасывания последних k цифр
Любую цифру можно взять и без цикла: 5682 // 100 % 10 = 6, 5682 % 100 = 82, 5682 // 1000 = 5.
- rперевёрнутое число; в начале r = 0
- n % 10очередная последняя цифра
Перевёрнутое число: для 5682 r = 2, 28, 286, 2865. Проверка на палиндром: после цикла r == m (m — копия исходного числа).
- cколичество цифр числа n (счётчик цикла по цифрам)
- aдобавляемая цифра
Приписать цифру a к числу слева и справа.
- iпроверяемый кандидат в делители
- c == 2если делителей ровно 2, n — простое
Цикл по делителям: for i in range(1, n + 1): и внутри if n % i == 0:.
- pow(a, 0.5)квадратный корень из a, дробное число (
49 ** 0.5→7.0) - int(…)отбрасывает дробную часть
Если корень — целое число, a — полный квадрат. В решениях ГЭЦ встречается и запись a ** (1/2) — это то же самое.
- a % bостаток от деления a на b
- b = 0останавливаемся, когда остаток равен 0: ответ — a
Алгоритм Евклида. В учебниках есть и вариант с вычитанием: вычитай меньшее число из большего, пока числа не станут равны.
- a · bпроизведение двух чисел
Наименьшее общее кратное сразу получается из НОД.
- s = s + 1 / is = s + 1 / iшаблон суммы в цикле
- p = p * iшаблон факториала (в начале p = 1)
i — переменная цикла: for i in range(1, n + 1):.
Анализ программы: от результата к входным данным
К уроку- n₀, s₀значения до цикла
- dчисло, прибавляемое на каждом шаге (
n = n + d) - qчисло, на которое умножают на каждом шаге (
s = s * q) - kчисло итераций
Сложение даёт арифметическую прогрессию, умножение — геометрическую.
- xₖзначение переменной цикла после k итераций, выраженное через ввод (например, s₀ + k · m)
Условие того, что цикл выполнится ровно k раз.
- qделитель (
a = a // q) - yрезультат целочисленного деления
Шаг назад через целочисленное деление: наименьшее x = q · y, наибольшее x = q · y + q − 1.
- L, Rнаименьший и наибольший подходящий ввод
- k(k + 1) / 2k(k + 1) / 2сумма первых k натуральных чисел
Количество целых чисел на отрезке и сумма с растущим шагом.
Строки и операции над ними
К уроку- s[i]символ с индексом i (тоже строка)
- len(s)количество символов; последний индекс — len(s) − 1
s[len(s)] вызывает ошибку (IndexError): такого индекса нет.
- aначальный индекс (включается); если не указан — с начала
- bконечный индекс (не включается); если не указан — до конца
- cшаг; по умолчанию 1; отрицательный шаг идёт справа налево
Срез идёт от a до b − 1 с шагом c. s[::-1] — перевёрнутая строка; при c = 1 в срезе b − a символов.
Списки и операции над ними
К урокуФункция: def, параметры и return
К урокуНаписание программ: письменные задания
К уроку- NBaотносительный балл за открытые задания
- Dkodчисло верных кодируемых ответов (0–5)
- Dyazılıсумма баллов за письменные задания (0–3)
Закрытая часть добавляет 100/33 · (Dq − Yq/4); максимум по предмету — 100. Письменное задание весит столько же, сколько два задания с кодируемым ответом.
8Базы данныхПродвинутый
Базы данных: модели, СУБД и связанные таблицы
К урокуЗапросы, поиск и сортировка в базе данных
К уроку- M(A)номера записей, удовлетворяющих условию A
- ∩пересечение: входят в оба множества
AND — должны выполняться оба условия: остаются общие номера.
- ∪объединение: входят хотя бы в одно множество
OR — должно выполняться хотя бы одно условие: номера объединяются без повторов.
- Uвсе записи таблицы
- \разность: из U убираем M(A)
NOT — остаются записи, не удовлетворяющие условию.
- A, Bлюбые условия
Законы де Моргана: при внесении NOT в скобки AND и OR меняются местами.
9Сети, интернет и информационная безопасностьПродвинутый
Поиск в интернете: поисковые системы и запросы
К уроку- n(A), n(B)число страниц, найденных по запросам A и B
- n(A AND B)число страниц, где есть оба слова
- n(A OR B)число страниц, где есть хотя бы одно из слов
Формула включений и исключений для двух множеств. Если известны три величины из четырёх, находится и четвёртая.
- n(A AND NOT B)число страниц, где есть A, но нет B
Из круга A вычитается общая часть, а не весь B!
- n(A AND B AND C)число страниц, где есть все три слова (центр, часть 7)
Формула включений и исключений для трёх множеств: при вычитании попарных пересечений центр вычитается трижды, поэтому его один раз добавляют обратно.
Кибербезопасность: пароли, фишинг и конфиденциальность
К уроку- Cколичество возможных паролей
- Aмощность алфавита — сколько разных символов можно использовать
- Lдлина пароля (количество символов)
Формула N = 2ⁱ из первого урока — частный случай: там в алфавите было всего 2 символа, 0 и 1.
Защита информации и криптография
К уроку- xномер буквы открытого текста
- yномер буквы шифртекста
- kключ — величина сдвига
- nчисло символов в алфавите (26, 32 или 10)
- mod nостаток от деления на n: алфавит «замыкается в круг»
Шифрование: на k позиций вправо.
Расшифрование: на k позиций влево. Если получилось отрицательное число, прибавьте n: например, (1 − 3) mod 26 = −2 + 26 = 24.
- x, yномера соответствующих букв открытого текста и шифртекста
- k₁, k₂ключи двух шифрований подряд
Чтобы найти ключ, достаточно одной буквы; два сдвига складываются. Сдвиг на k влево — это сдвиг на n − k вправо.
10Веб-программированиеПродвинутый
Веб-программирование: создание сайта, теги HTML и списки
К урокуТаблицы, цветовая схема, изображения и ссылки в HTML
К уроку- #RRGGBBкод цвета: три шестнадцатеричные пары — красный, зелёный, синий
- 256число значений одной пары: 00…FF = 0…255
- Nчисло цветов, которые можно записать
Каждый цвет кодируется 3 байтами = 24 битами — как True Color в растровой графике.
- w₁, h₁собственные ширина и высота изображения (пиксели)
- w₂ширина, заданная в атрибуте
width - h₂высота, которую покажет браузер
Если задана только width (или только height), браузер сохраняет пропорции.
11Алгоритмы и структуры данныхУниверситет
Сложность алгоритмов и О-нотация
К уроку- nразмер входных данных (число элементов)
Сумма Гаусса: число операций во вложенных циклах вида «каждый элемент с каждым по одному разу».
- f(n)число операций алгоритма
- g(n)функция сравнения (n, n², n log n …)
- cположительная константа
- n₀размер, начиная с которого выполняется неравенство
Ω — нижняя оценка, Θ — одновременно верхняя и нижняя («зажата» между двумя константами).
- T(n)время работы на входе из n элементов
- 2T(n/2)2T(n/2)рекурсивная обработка двух половин
- cnработа по разбиению и слиянию (линейная)
Дерево рекурсии: на уровне k находится 2ᵏ подзадач размера n/2ᵏ, общая работа уровня 2ᵏ · c · n/2ᵏ = cn. Уровней log₂ n, поэтому всего cn · log₂ n.
- aчисло рекурсивных вызовов (a ≥ 1)
- bво сколько раз уменьшается размер (b > 1)
- dпоказатель степени работы по разбиению и объединению (d ≥ 0)
Основная теорема (упрощённая форма): сравни a с bᵈ. a < bᵈ → Θ(nᵈ); a = bᵈ → Θ(nᵈ · log n); a > bᵈ → Θ(nᵖ), где p = log a / log b.
Массивы, связные списки, стеки и очереди
К уроку- baseначальный адрес массива (адрес A[0])
- iиндекс элемента (начиная с 0)
- sразмер одного элемента, байт
Именно поэтому индексы начинаются с 0: i показывает, на сколько шагов элемент удалён от начала.
- nчисло добавленных элементов
- 1 + 2 + … + 2ᵏсумма копирований при всех расширениях (< 2n)
Амортизированная стоимость: общая работа n добавлений меньше 3n, значит, одно добавление в среднем стоит O(1) — несмотря на редкие «дорогие» расширения.
- headиндекс первого элемента очереди
- sizeчисло элементов в очереди
- mёмкость массива
- tailиндекс, куда запишется следующий элемент
Хеш-таблицы
К уроку- s₀ … sₖ₋₁числовые коды символов строки
- pоснование (обычно небольшое простое число, например 31)
- kдлина строки
- mчисло корзин
Полиномиальный хеш зависит и от символов, и от их порядка: «ab» и «ba» получают разные хеши.
- kчисло вставленных ключей
- mчисло корзин
m = 365, k = 23: k(k − 1)/2 = 253, 253/365 ≈ 0,693, e^(−0,693) ≈ 0,5. Чтобы начались коллизии, достаточно примерно √m ключей.
- αкоэффициент заполнения (load factor)
- nчисло ключей в таблице
- mчисло корзин
При методе цепочек α — средняя длина цепочки, она может быть больше 1; при открытой адресации всегда α < 1.
- Eожидаемое число проб при неудачном поиске (ключа нет)
В предположении равномерного хеширования. Формула для линейного пробирования — из анализа Кнута; при α → 1 число проб резко растёт.
Деревья и кучи
К уроку- nчисло узлов
- hвысота дерева (в рёбрах)
На глубине d помещается не более 2ᵈ узлов: 1 + 2 + 4 + … + 2ʰ = 2ʰ⁺¹ − 1. Значит, высота двоичного дерева из n узлов не может быть меньше примерно log₂ n, но может достигать n − 1.
- iиндекс узла в массиве (с 0)
Дерево записывается в массив по уровням; так как оно полное, пропусков нет, а высота равна ⌊log₂ n⌋.
- hвысота узла над листьями
- n / 2ʰ⁺¹n / 2ʰ⁺¹число узлов высоты h (примерно)
heapify превращает массив в кучу снизу вверх: половина узлов — листья (0 работы), четверть погружается на 1 шаг и т. д. Поскольку ∑ h/2ʰ = 2, всего получается O(n), а не O(n log n). Пирамидальная сортировка затем делает n извлечений — O(n log n).
Графы и алгоритмы на графах
К уроку- deg(v)степень вершины v
- |V|, |E|число вершин и рёбер
«Лемма о рукопожатиях»: каждое неориентированное ребро добавляет к сумме степеней 2 — по одному на каждом конце. Второе неравенство — максимальное число рёбер в простом неориентированном графе.
- dist[v]найденное на данный момент кратчайшее расстояние от источника до v
- w(u, v)вес ребра u–v (≥ 0)
- Tвремя работы с двоичной кучей
Рекурсия и динамическое программирование
К уроку- n · (n − 1)!рекурсивный шаг
- 0! = 1базовый случай
- T(n)время работы простой рекурсивной fib(n)
- φзолотое сечение
С мемоизацией каждое fib(k) вычисляется один раз: n + 1 подзадача × O(1) работы = O(n). От экспоненты к линии!
- dp[i][c]наибольшая стоимость из первых i предметов при вместимости c
- wᵢ, vᵢвес и стоимость i-го предмета (второй вариант только при wᵢ ≤ c)
Время и память O(n · W). Это псевдополиномиальная сложность: она экспоненциальна по числу битов W.
- L[i][j]длина НОП первых i символов a и первых j символов b
- L[0][j] = L[i][0]0 (с пустой строкой ничего общего нет)
Время O(m · n): для двух строк длины 1000 нужно всего 10⁶ ячеек, а перебор всех подпоследовательностей означал бы 2¹⁰⁰⁰ вариантов.
- coins[x]наименьшее число монет для суммы x
- cдоступный номинал монеты
Эффективные алгоритмы сортировки
К уроку- 2T(n/2)2T(n/2)рекурсивная сортировка двух половин
- cnслияние (не более n − 1 сравнений)
На каждом из log₂ n уровней слияния в сумме дают ≤ n сравнений → ≤ n log₂ n. Так в худшем, среднем и лучшем случаях. Дополнительная память O(n); алгоритм устойчив (равные элементы сохраняют порядок).
- T(n − 1)оставшаяся часть, когда опорный всегда минимум или максимум
- n − 1число сравнений одного разбиения
При сбалансированных разбиениях быстрая сортировка ведёт себя как слияние: T(n) = 2T(n/2) + n → Θ(n log n); при худшем разбиении каждый раз — Θ(n²).
- hчисло сравнений в худшем случае (высота дерева)
- n!число возможных порядков n элементов
Каждый из n/2 множителей n!, больших n/2, не меньше n/2, поэтому n! ≥ (n/2)^(n/2). Точнее, по формуле Стирлинга, log₂(n!) ≈ n log₂ n − 1,44n.
12Компьютерные системы и теорияУниверситет
Архитектура компьютера
К уроку- tпроцессорное время программы, с
- Nчисло выполненных команд
- CPIсреднее число тактов на команду
- fтактовая частота, Гц
«Основное уравнение» производительности процессора: чтобы ускориться, нужно меньше команд (лучший алгоритм и компилятор), меньший CPI (конвейер, кэш) или более высокая частота.
- AMATсреднее время доступа к памяти
- thitвремя доступа при попадании в кэш
- mдоля промахов
- tmissштраф за промах (обращение к следующему уровню)
- NOT xинверсия всех битов x
- nчисло битов (8 бит: −128 … 127)
- sбит знака (1 бит)
- eсмещённый порядок (8 бит, смещение 127)
- mдробная часть мантиссы (23 бита; ведущая 1 не хранится)
32-битный формат (single). 64-битный double: 1 + 11 + 52 бита, смещение 1023, точность около 15–16 десятичных цифр. float в Python — это double.
Операционные системы
К уроку- Wсреднее время ожидания
- Cᵢмомент завершения процесса i
- Aᵢмомент поступления
- Bᵢдлительность работы на процессоре (burst)
- VA, PAвиртуальный и физический адрес
- Pразмер страницы, байт
- p, dномер страницы и смещение внутри неё
При P = 2ᵏ деление — это просто разделение битов: для страниц 4 КБ = 2¹² младшие 12 бит — смещение, остальные — номер страницы.
Компьютерные сети: углублённо
К уроку- nдлина префикса (/n)
- Nhostчисло адресов, доступных устройствам
- maskn единиц и 32 − n нулей (например, /26 → 255.255.255.192)
- L / RL / Rзадержка передачи: размер пакета L (бит) / скорость канала R (бит/с)
- D / sD / sзадержка распространения: расстояние D / скорость сигнала s (≈ 2 · 10⁸ м/с в оптоволокне)
- W, RTTразмер окна TCP и время кругового обхода
Теория баз данных
К уроку- σвыборка (selection): строки, удовлетворяющие условию, —
WHERE - πпроекция: нужные столбцы — список
SELECT - ⋈соединение (join): объединение двух отношений по общему атрибуту —
JOIN
- hвысота индекса B-дерева (число читаемых страниц при поиске)
- Nчисло строк в таблице
- fветвление: сколько ключей помещается на странице
Теория вычислений
К уроку- Qконечное множество состояний
- Σвходной алфавит (например, {0, 1})
- δфункция переходов
- q₀, Fначальное состояние и множество допускающих состояний
- pдлина накачки (число состояний автомата)
- yнепустая часть, которую можно повторять или удалять сколько угодно
Лемма о накачке: длинное слово обязательно проходит некоторое состояние дважды (принцип Дирихле), и этот цикл можно повторять сколько угодно раз.
Программная инженерия
К уроку- Cчисло парных каналов общения в команде
- nчисло участников команды
5 человек → 10 каналов, 10 человек → 45 каналов. Этим объясняется закон Брукса: добавление людей в опаздывающий проект часто задерживает его ещё сильнее. Поэтому Scrum-команды держат небольшими (обычно до 10 человек).
- Mцикломатическая сложность Маккейба: число независимых путей
- E, Nрёбра и узлы графа потока управления
- Pчисло связных компонент (1 для одной функции)
M — хорошая оценка минимального числа тестов, нужных для покрытия всех ветвей. Функции с M > 10 обычно разбивают на меньшие.
Криптография и информационная безопасность
К уроку- M, Cоткрытый текст и шифртекст
- Kодин и тот же секретный ключ у обеих сторон
- E, Dалгоритмы шифрования и расшифрования (например, AES)
Принцип Керкгоффса: алгоритм может быть известен всем, безопасность должна держаться только на секретности ключа.
- p, gобщеизвестные простое число и основание
- a, bсекретные числа сторон
- sобщий секрет — никогда не передаётся по сети
Обмен ключами Диффи — Хеллмана: подслушивающий видит p, g, A и B, но чтобы получить s, ему нужно решить задачу дискретного логарифма.
- p, qдва больших секретных простых числа (на практике ≈ 1024 бита каждое)
- (n, e)открытый ключ
- dзакрытый ключ: обратный к e по модулю φ(n)
- m, cсообщение (0 ≤ m < n) и шифртекст
RSA (Ривест, Шамир, Адлеман, 1977). Чтобы найти d, нужно φ(n), а для него — множители n: безопасность держится на трудности разложения на множители.
- Hэнтропия случайного пароля, бит
- Lдлина пароля
- Nразмер алфавита (26 строчных букв, 94 печатных символа)
Каждый дополнительный бит вдвое удлиняет перебор. Формула верна только для действительно случайных паролей: пароли вроде «Baku2026!» быстро находятся атаками по словарю.