244
правки
Изменения
Нет описания правки
# Предложите алгоритм проверки того, что заданный двоичный код является однозначно декодируемым. Алгоритм должен работать за полином от суммы длин кодовых слов.
# Обобщите алгоритм Хаффмана для ""сжатых"" алфавитов, заданных в следующем виде: дано $n$ пар $(k_i, f_i)$, означающих, что в алфавите присутствует $k_i$ символов с частотой $f_i$. Придумайте, как за полиномиальное время найти длину кода Хаффмана для такого алфавита и оцените время работы алгоритма.
# Верно ли, что если длины кодовых слов некоторого кода удовлетворяют неравенству Крафта-МакМиллана, то это код является однозначно декодируемым?
# Петя утверждает, что он разработал однозначно декодируемый код $c$, в котором для каждой строки $x$ длина её кода $c(x)$ не больше длины $x$, а хотя бы для одной длина кода строго меньше. Прокомментируйте результат Пети.
# Вася утверждает, что он разработал однозначно декодируемый код $c$, в котором для некоторого $n$ хотя бы для половины строк $x$ длины не больше $n$ длина кода $c(x)$ строго меньше длины $x$. Прокомментируйте результат Васи.
# Пусть вероятности символов упорядочены по убыванию ($p_1 \ge p_2 \ge \ldots \ge p_n$) и являются дробями, у которых числитель 1, а знаменатель - степень двойки. Что можно сказать про арифметическое кодирование в этом случае?
# Докажите, что для любого $c > 1$ существует распределение частот $p_1, p_2, .., p_n$, что арифметическое кодирование в среднем тратит в $c$ раз меньше бит на символ строки, чем код Хаффмана.
# Докажите, что при оптимальном кодировании с помощью LZ не выгодно делать повтор блока, который можно увеличить вправо
# Разработайте алгоритм оптимального кодирования текста с помощью LZ, если на символ уходит $c$ бит, а на блок повтора $d$ бит
# Предложите семейство строк $S_1, S_2, \ldots, S_n, \ldots$, где $S_i$ имеет длину $i$, таких, что при их кодировании с помощью LZW длина строки увеличивается. Начальный алфавит $\{0, 1\}$.
# Предложите алгоритм декодирования кода Барроуза-Уиллера.
# Предложите алгоритм декодирования кода Барроуза-Уиллера за $O(n)$.
# Предложите реализацию преобразования Move to Front за $O(n \log n)$.
# Предложите реализацию преобразования Move to Front за $O(n)$.
# При арифметическом кодировании может повезти и у достаточно длинной строки код получится коротким, хотя длина строки большая, и оценка на длину кода тоже большая. Приведите пример такой строки.
# Для предыдущего задания приведите пример бесконечной последовательности строк возрастающей длины, для которых проявляется описанный эффект.
# При арифметическом кодировании можно учитывать, что с учетом уже потраченных символов соотношения символов становятся другими и отрезок надо делить в другой пропорции. Всегда ли кодирование с таким уточнением лучше классического арифметического кодирования?
# Проанализируйте время работы алгоритма арифметического кодирования (с учетом длинной арифметики).
# Троичное арифметическое кодирование. Пусть при арифметичском кодировании мы используем в качестве знаменателя не $2^q$, а $3^q$, а числитель записываем как троичное число, дополненное ведущими нулями до длины $q$. Затем запишем числитель в двоичной записи, а ведущие нули заменим на нули в двоичной записи. Приведите пример строки, когда описанный метод через степени тройки будет лучше классического арифметического кодирования.
# Приведите пример строки, когда такой метод будет хуже классического арифметического кодирования.
# Докажите, что в зеркальном коде Грея $g_i = i \oplus \lfloor i / 2\rfloor$
# Докажите, что в зеркальном коде Грея при переходе от $g_i$ к $g_{i+1}$ меняется тот же бит, который меняется с 0 на 1 при переходе от $i$ к $i+1$
# Докажите, что $g_{i \oplus j} = g_i \oplus g_j$.
# Выведите формулу, которая по кодовому слову возвращает его позицию в зеркальном коде Грея (аналог формулы из задания 128)
# Разработайте код Грея для $k$-ичных векторов
# При каких $a_1, a_2, ..., a_n$ существует обход гиперпараллелепипеда $a_1 \times a_2 \times ... \times a_n$, который переходит каждый раз в соседнюю ячейку и бывает в каждой ячейке ровно один раз?
# При каких $a_1, a_2, ..., a_n$ существует обход гиперпараллелепипеда $a_1 \times a_2 \times ... \times a_n$, который переходит каждый раз в соседнюю ячейку и бывает в каждой ячейке ровно один раз, а в конце возвращается в исходную ячейку?
# Код ""антигрея"" - постройте двоичный код, в котором соседние слова отличаются хотя бы в половине бит
# Троичный код ""антигрея"" - постройте троичный код, в котором соседние слова отличаются во всех позициях
# При каких $n$ и $k$ существует двоичный $n$-битный код, в котором соседние кодовые слова отличаются ровно в $k$ позициях?
# Докажите, что для достаточно больших $n$ существует код Грея, который отличается от любого, полученного из зеркального перестановкой столбцов, отражением и циклическим сдвигом строк
# Код Грея назвается монотонным, если нет таких слов $g_i$ и $g_j$, что $i < j$, а $g_i$ содержит на 2 или больше единиц больше, чем $g_j$. Докажите, что существует монотонный код Грея
# Сколько существует векторов длины $n + 1$, содержащих каждое число от $1$ до $n$ хотя бы по одному разу?
# Выведите рекуррентную формулу для числа комбинаторных объектов: вектор длины $2n$, в котором каждое число от $1$ до $n$ встречается ровно два раза.
# Коды Грея для перестановок. Предложите способ перечисления перестановок, в котором соседние перестановки отличаются обменом двух соседних элементов (элементарной транспозицией).
# Коды Грея для сочетаний. Предложите способ перечисления сочетаний, в котором соседние сочетания отличаются заменой одного элемента.
# Коды Грея для размещений. Предложите способ перечисления размещений, в котором соседние размещения отличаются заменой одного элемента в одной позиции.
# Докажите, что существует способ упорядочить все двоичные вектора длины $n$, чтобы любые два соседних отличались в не более, чем двух позициях, а количество единиц в $i$-м векторе не превосходило количество единиц в $j$-м векторе при $i < j$.
# Факториальная система счисления. Рассмотрим систему счисления, где бесконечно много цифр, в $i$-м разряде (нумерация разрядов с 1 от младшего к старшему) разрешается использовать цифры от 0 до $i$, вес $i$-го разряда $i!$. Докажите, что у каждого положительного числа ровно одно представление в факториальной системе счисления (с точностью до ведущих нулей). Предложите алгоритм перевода числа в факториальную систему счисления.
# Как связана факториальная система счисления и нумерация перестановок?
# Фибоначчиева система счисления. Рассмотрим систему счисления, где есть две цифры, 0 и 1. Пусть нумерация разрядов ведется с 1 от младшего к старшему, вес $i$-го разряда $F_i$, где $F_i$ - $i$-е число Фибоначчи ($F_0 = 1$, $F_1 = 1$, нулевой разряд не используется). При этом запрещается исползовать две единицы в соседних разрядах. Сколько представлений в Фибоначчиевой системе счисления у положительного числа $x$? Предложите алгоритм перевода числа в фибоначчиеву систему счисления.
# Свяжите фибоначчиеву систему счисления с нумерацией каких-либо комбинаторных объектов.
# Выразите $n \choose k$ через $n-1 \choose k-1$, $n$ и $k$.
# Выразите $n \choose k$ через $n-1 \choose k$, $n$ и $k$.
# Докажите, что ${n \choose m}{m \choose k}={n \choose k}{n-k \choose m - k}$.
# Докажите, что $\sum\limits_{k=0}^n {k \choose m}={n+1 \choose m+1}$.
# Докажите, что $\sum\limits_{k=0}^n {m+k \choose k}={m+n+1 \choose n}$.
# Докажите, что $\sum\limits_{k=0}^n {r \choose k}{s \choose n - k}={r+s \choose n}$.
# Докажите, что $\sum\limits_{k=0}^m {r \choose k}\left(\frac{r}{2} - k\right)=\frac{m+1}{2}{r \choose m+1}$. // Забавно, что нет простого выражения для $\sum\limits_{k=0}^m {r \choose k}$.
# Обобщите формулу бинома Ньютона на степень суммы трёх: $(x+y+z)^n=?$
# Докажите, что $\sum\limits_k{r \choose m + k}{s \choose n - k}={r+s \choose m+n}$. В этом и следующих заданиях сумма берётся по всем допустимым целым $k$.
# Докажите, что $\sum\limits_k{r \choose m + k}{s \choose n + k}={r+s \choose r-m+n}$
# Докажите, что $\sum\limits_k(-1)^k{r \choose m + k}{s+k \choose n}=(-1)^{r+m}{s-m \choose n-r}$
# Докажите, что $\sum\limits_k(-1)^k{r-k \choose m}{s \choose k-n}=(-1)^{r+n}{s-m-1 \choose r-m-n}$
# Докажите, что $\sum\limits_k{m-r+s\choose k}{n+r-s \choose n-k}{r+k \choose m+n}={r \choose m}{s \choose n}$
# Вычислите сумму $\sum\limits_{k=0}^m{m \choose k}/{n \choose k}$.
# Докажите, что $\sum\limits_k {n - k \choose k} = F_n$ ($n$-е число Фибоначчи).
# Докажите, что число Каталана $C_n = \frac{1}{n+1} {2n \choose n}$.
# Докажите, что число различных триангуляций правильного $n$-угольника равно числу Каталана. В этом и нескольких следующих заданиях номер соответствующего числа Каталана может отличаться от $n$, требуется также установить соответствие между размером задачи и номерами чисел Каталана.
# (для 31-35) Докажите, что число подвешенных деревьев с порядком на детях с $n$ вершинами равно числу Каталана.
# Будем называть последовательность ''сортируемой стеком'', если ее можно отсортировать, используя в произвольном порядке следующие операции: (а) взять первый элемент входной последовательности и положить в стек (б) взять верхний элемент стека и отправить в конец выходной последовательности. Докажите, что число перестановок $n$ элементов, сортируемых стеком, равно число Каталана.
# Докажите, что число перестановок $n$ элементов, в которых нет возрастающей последовательности длины 3, равно числу Каталана.
# Докажите, что число способов расставить числа от 1 до $2n$ в прямоугольник $2 \times n$, чтобы числа в каждой строке и каждом столбце возрастали, равно числу Каталана.
# Докажите, что число разбиений вершин $2n$-угольника на пары непересекающимися хордами равно числу Каталана.
# Докажите, что число мультимножеств из $n$ чисел от $0$ до $n$, сумма которых делится на $n+1$, равно числу Каталана.
# Укажите способ подсчитать число разбиений заданного $n$-элементного множества на $k$ упорядоченных непустых подмножеств (например, для $n = 3$, $k = 2$ есть следующие разбиения: $\{[1], [2, 3]\}$, $\{[1], [3, 2]\}$, $\{[1, 2], [3]\}$, $\{[1, 3], [2]\}$, $\{[2, 1], [3]\}$, $\{[2], [3, 1]\}$.
# Подъемом в перестановке называется пара соседних элементов, таких что $a_{i-1} < a_i$. Выведите рекуррентную формулу для числа перестановок $n$ элементов с $k$ подъемами.
# Сюръекцией называется такая функция $f : X \to Y$, что для каждого элемента $y \in Y$ существует $x \in X$, что $f(x) = y$. Придумайте рекуррентную формулу для числа сюръекций из $\{1..n\}$ в $\{1..k\}$.
# Выведите другую формулу для числа сюръекций, используя формулу включений-исключений. Свяжите число сюръекций с числами Стирлинга второго рода.
# Найдите число сочетаний из $n$ по $k$, что любые два выбранных числа отличаются как минимум на $d$.
# Выведите рекуррентную формулу для числа разбиений числа $n$ на нечетные слагаемые.
# Выведите рекуррентную формулу для числа разбиений числа $n$ на нечетное число слагаемых.
# Выведите рекуррентную формулу для числа разбиений числа $n$ на различные слагаемые.
# Докажите, что число разбиений числа $n$ на нечетные слагаемые и число разбиений числа $n$ на различные слагаемые совпадает.
# Для каких $n$ число разбиений $n$ на чётное число различных слагаемых и число разбиений $n$ на нечётное число различных слагаемых различно?
# Докажите формулу $t^{\overline{n}}=\sum\limits_{k=0}^n\left[n\atop k\right]t^k$, где $t^{\overline{n}} = t(t+1)\ldots(t+n-1)$ называется ""$n$-й восходящей факториальной степенью $t$"".
# Докажите формулу $t^n=\sum\limits_{k=0}^n(-1)^{n-k}\left\{n\atop k\right\}t^{\overline k}$.
# Придумайте аналогичные двум предыдущим заданиям формулы для $t^{\underline{n}} = t(t-1)\ldots(t-(n-1))$ ($t^{\underline{n}}$ называется ""$n$-й нисходящей факториальной степенью $t$"").
# Неподвижной точкой в перестановке называется элемент $a_i = i$. Беспорядком называется перестановка без неподвижных точек. Найдите число беспорядков длины $n$ с помощью формулы включений-исключений.
# Выведите рекуррентную формулу для числа перестановок $n$ элементов с $k$ циклами без неподвижных точек.
# Выведите рекуррентную формулу для числа перестановок $n$ элементов с $k$ неподвижными точками. Не пользуйтесь формулой для подсчета беспорядков, придумайте именно рекуррентную формулу.
# Префиксным максимумом в перестановке называется элемент, который больше всех предыдущих. Выведите рекуррентную формулу для числа перестановок размера $n$ с $k$ префиксными максимумами.
# Транспозицией называется перестановка, которая имеет один цикл длины $2$ и остальные элементы являются неподвижными точками. Перестановка называется чётной, если ее можно представить в виде произведения чётного числа транспозиций. Докажите, что если перестановку можно представить в виде произведения циклов длины 3, то она является чётной.
# Транспозиция называется элементарной, если она переставляет местами два соседних элемента. Докажите, что перестановка является чётной тогда и только тогда, когда любое ее представление в виде произведения элементарных транспозиций содержит чётное число сомножителей.
# Докажите, что перестановка является чётной тогда и только тогда, когда '''любое''' ее представление в виде произведения транспозиций содержит чётное число сомножителей.
# Докажите, что число четных перестановок равно $\frac {n!}{2}$ при $n \ge 2$.
# Инверсией в перестановке $a$ называется пара индексов $i < j$, для которой $a_i > a_j$. Докажите, что перестановка является чётной тогда и только тогда, когда она содержит чётное число инверсий.
# Докажите, что перестановка является чётной тогда и только тогда, когда $n - c$ четно, где $c$ - число циклов в перестановке.
# Докажите, что множество четных перестановок с операцией композиции образует группу.
# Есть две перестановки: первая меняет местами первые два элемента, а вторая делает циклический сдвиг на один. Покажите, что любую перестановку можно выразить, как композицию этих двух (возможно, используя каждую несколько раз).
# Перестановка $[a_1, a_2, \ldots, a_n]$ называется пилообразной, если $a_1 > a_2 < a_3 > a_4 \ldots a_n$. Найдите количество пилообразных перестановок (можно получить формулу с $O(n)$ слагаемыми или рекуррентную формулу)
# Перестановка $[a_1, a_2, \ldots, a_n]$ называется неразложимой, если у нее ни для какого $0 < k < n$ нет префикса длины $k$, который является перестановкой чисел от 1 до $k$. Найдите количество неразложимых перестановок (можно получить формулу с $O(n)$ слагаемыми или рекуррентную формулу)
# Сопряжением перестановки $\alpha$ относительно перестановки $\tau$ называется перестановка $\tau^{-1}\alpha\tau$. Две перестановки $\alpha$ и $\beta$ называются сопряженными, если существует такая перестановка $\tau$, что $\beta = \tau^{-1}\alpha\tau$. Докажите, что сопряжение является отношением эквивалентности.
# Докажите, что две перестановки являются сопряженными тогда и только тогда, когда их циклические классы совпадают.
# В вершинах правильного $n$-угольника записаны числа от $1$ до $n$. Рассмотрим две операции: поворот на угол $2\pi i/n$ и отражение относительно прямой, проходящей через центр многоугольника, после которого вершины оказываются в тех же точках. Докажите, что композиция отражения и поворота является отражением.
# В вершинах правильного $n$-угольника записаны числа от $1$ до $n$. Рассмотрим две операции: поворот на угол $2\pi i/n$ и отражение относительно прямой, проходящей через центр многоугольника, после которого вершины оказываются в тех же точках. Докажите, что композиция двух отражений является поворотом.
# В вершинах правильного $n$-угольника записаны числа от $1$ до $n$. Рассмотрим две операции: поворот на угол $2\pi i/n$ и отражение относительно прямой, проходящей через центр многоугольника, после которого вершины оказываются в тех же точках. Зафиксируем конкретную прямую, относительно которой можно делать отражение. Докажите, что композиция любой последовательности отражений и поворотов является либо поворотом, либо композицией поворота и отражения относительно зафиксированной прямой.
# Выведите формулу для числа ожерелий из $n$ бусинок $k$ цветов с точностью до циклического сдвига и отражения.
# Выведите формулу для числа ожерелий из $n$ бусинок 2 цветов с точностью до циклического сдвига, в которых ровно две белые бусины.
# Выведите формулу для числа ожерелий из $n$ бусинок 2 цветов с точностью до циклического сдвига, в которых ровно $k$ белых бусин.
# Пусть $p$ простое. Найдите число ожерелий из $p^2$ бусинок 2 цветов с точностью до циклического сдвига.
# Пусть $p$ и $q$ простые. Найдите число ожерелий из $pq$ бусинок 2 цветов с точностью до циклического сдвига.
# Найдите число таких различных булевых функций от 2 переменных, что ни одна из них не может быть получена ни из какой другой навешиванием отрицаний над некоторыми переменными
# Найдите число таких различных булевых функций от $n$ переменных, что ни одна из них не может быть получена ни из какой другой навешиванием отрицаний над некоторыми переменными
# Выведите формулу для числа раскрасок $n$ шаров в $k$ цветов, порядок не важен.
# Выведите формулу для числа раскрасок прямоугольника $n \times m$ в $k$ цветов с точностью до отражения относительно горизонтальной и вертикальной оси.
# Выведите формулу для числа раскрасок граней тетраэдра в $k$ цветов с точностью до любого поворота в 3D.
# Выведите формулу для числа раскрасок ребер тетраэдра в $k$ цветов с точностью до любого поворота в 3D.
# Выведите формулу для числа раскрасок граней куба в $k$ цветов с точностью до любого поворота в 3D.
# Выведите формулу для числа раскрасок ребер куба в $k$ цветов с точностью до любого поворота в 3D.
# Выведите формулу для числа раскрасок граней октаэдра в $k$ цветов с точностью до любого поворота в 3D.
# Почему мы не сделали задачу про вершины тетраэдра, вершины куба, вершины и ребра октаэдра? Неужели оставили на контрольную?