Карлукова M32342 временная статья — различия между версиями
Строка 33: | Строка 33: | ||
Заметим, что второй множитель в левой части равен в точности <tex>Q(t)</tex>, а степень правой части не превосходит <tex>k-1</tex>. Получили требуемое построение. | Заметим, что второй множитель в левой части равен в точности <tex>Q(t)</tex>, а степень правой части не превосходит <tex>k-1</tex>. Получили требуемое построение. | ||
+ | |||
+ | Многочлен <tex>P(t)</tex> можно найти по формуле <tex>A(t) \cdot Q(t)</tex> как числитель получившейся дроби. К результату можно применить взятие его по модулю <tex>t^k</tex>. Это действие не испортит многочлен, так как его степень строго меньше <tex>k</tex>. При этом мы сократим число операций при вычислении <tex>P(t)</tex>, поскольку достаточно найти только <tex>k</tex> первых членов результирующего ряда, а для этого можно обойтись только первыми <tex>k</tex> слагаемыми степенных рядов, соответствующих производящим функциям <tex>A(t)</tex> и <tex>Q(t)</tex>. | ||
+ | <!-------Для того чтобы сократить число операций, все действия могут быть выполнены по модулю <tex>t^k</tex>.--------> | ||
+ | Итак, <tex>P(t) = A(t) \cdot Q(t) \mathrm{ mod } t^k</tex>. | ||
<!----Значит, многочлены <tex>Q(t)</tex> и <tex>P(t)</tex> всегда могут быть найдены. Более того, многочлен в знаменателе после нашего построения всегда принимает вид <tex>Q(t)=1 - c_1 \cdot t - c_2 \cdot t^2 - \ldots - c_k \cdot t^k</tex-----> | <!----Значит, многочлены <tex>Q(t)</tex> и <tex>P(t)</tex> всегда могут быть найдены. Более того, многочлен в знаменателе после нашего построения всегда принимает вид <tex>Q(t)=1 - c_1 \cdot t - c_2 \cdot t^2 - \ldots - c_k \cdot t^k</tex-----> | ||
− | |||
<tex>\Leftarrow</tex> | <tex>\Leftarrow</tex> | ||
Строка 61: | Строка 64: | ||
Видим, что <tex>a_n</tex> {{---}} член линейной рекуррентной последовательности, заданной коэффициентами <tex>c_1, c_2, \ldots, c_k</tex>, причём это выполнено для всех <tex>n \geqslant k </tex>, так как индекс <tex>n</tex>, удовлетворяющий данному условию, выбирался произвольно. | Видим, что <tex>a_n</tex> {{---}} член линейной рекуррентной последовательности, заданной коэффициентами <tex>c_1, c_2, \ldots, c_k</tex>, причём это выполнено для всех <tex>n \geqslant k </tex>, так как индекс <tex>n</tex>, удовлетворяющий данному условию, выбирался произвольно. | ||
}} | }} | ||
+ | |||
+ | == Примеры == | ||
+ | === Представление в виде отношения многочленов производящей функции для последовательности чисел Фибоначчи === | ||
+ | |||
+ | Введём обозначения: | ||
+ | |||
+ | <tex>F(t)</tex> {{---}} производящая функция для чисел Фибоначчи, <tex>f_n = [t^n]F(t)</tex>. | ||
+ | |||
+ | Последовательность задаётся следующим образом: | ||
+ | <tex>f_0 = f_1 = 1</tex>, | ||
+ | |||
+ | <tex>f_n = f_{n-1} + f_{n-2}</tex>, <tex>n \geq 2</tex>. | ||
+ | |||
+ | Здесь <tex>k=2</tex> и <tex>c_1 = c_2 = 1</tex>, следовательно <tex>Q(t) = 1 - c_1 \cdot t - c_2 \cdot t^2</tex>. К числителю применим формулу <tex>P(t) = F(t) \cdot Q(t) \mathrm{mod} t^2</tex>. Чтобы получить ответ, требуется найти всего лишь <tex>p_0</tex> и <tex>p_1</tex>. | ||
+ | |||
+ | <tex>p_0 = f_0 \cdot q_0 = 1 \cdot 1 = 1</tex>, | ||
+ | <tex>p_1 = f_0 \cdot q_1 + f_1 \cdot q_0 = 1 \cdot (-1) + 1 \cdot 1 = 0</tex>. | ||
+ | |||
+ | <!-------------- | ||
+ | * Вычислим производящую функцию последовательности <tex>a_0 = 1, a_n = k \cdot a_{n - 1}</tex> | ||
+ | *: Так как последовательность является линейно рекуррентной, её производящая функция, согласно теореме, имеет вид <tex>F(t) = \dfrac{P(t)}{Q(t)}</tex>, где <tex>Q(t) = 1 - k \cdot t</tex> (так как <tex>c_1 = k</tex>), а <tex>deg(P) < 1</tex>. | ||
+ | *: Будем искать производящую функцию в виде <tex>F(t) = \dfrac{C}{1 - k \cdot t}, C \in \mathbb{R}</tex> | ||
+ | *: Пусть <tex>F(t) = a_0 + a_1 \cdot t + a_2 \cdot t^2 + \ldots + a_n \cdot t^n + \ldots </tex>, тогда <tex>a_0 + a_1 \cdot t + a_2 \cdot t^2 + \ldots + a_n \cdot t^n + \ldots = \dfrac{C}{1 - k \cdot t}</tex>, следовательно <tex>(a_0 + a_1 \cdot t + a_2 \cdot t^2 + \ldots a_n \cdot t^n + \ldots) \cdot (1 - k \cdot t) = C</tex> | ||
+ | *: Пользуясь правилом перемножения формальных степенных рядов, получаем | ||
+ | *: <tex> C = a_0 \cdot 1 = 1 \cdot 1 = 1</tex> | ||
+ | *: Следовательно, <tex> F(t) = \dfrac{1}{1 - k \cdot t}</tex> | ||
+ | *: Таким образом, <tex> 1 + k \cdot t + (k \cdot t)^2 + \ldots + (k \cdot t)^n + \ldots = \sum\limits_{n = 0}^{\infty}(k \cdot t)^n = \dfrac{1}{1 - k \cdot t}</tex> | ||
+ | *: Частным случаем этой формулы являются соотношения <tex>1 + t + t^2 + \ldots t^n + \cdots = \sum\limits_{n = 0}^{\infty}t^n =\dfrac{1}{1 - t}</tex> и <tex>1 - t + t^2 + \ldots (-1)^n \cdot t^n + \cdots = \sum\limits_{n = 0}^{\infty}(-1)^n \cdot t^n = \dfrac{1}{1 + t}</tex> | ||
+ | |||
+ | * Вычислим производящую функцию последовательности Фибоначчи <tex>f_0 = f_1 = 1, f_n = f_{n - 1} + f_{n - 2}</tex> | ||
+ | *: Так как последовательность является линейно рекуррентной, её производящая функция, согласно теореме, имеет вид <tex>F(t) = \dfrac{P(t)}{Q(t)}</tex>, где <tex>Q(t) = 1 - t - t^2</tex> (так как <tex>c_1 = c_2 = 1</tex>), а <tex>deg(P) < 2</tex>. | ||
+ | *: Будем искать производящую функцию в виде <tex>F(t) = \dfrac{B + At}{1 - t - t^2}, A, B \in \mathbb{R}</tex> | ||
+ | *: Пусть <tex>F(t) = f_0 + f_1 \cdot t + f_2 \cdot t^2 + \ldots + f_n \cdot t^n + \ldots </tex>, тогда <tex>f_0 + f_1 \cdot t + f_2 \cdot t^2 + \ldots + f_n \cdot t^n + \ldots = \dfrac{C}{1 - t - t^2}</tex>, следовательно <tex>(f_0 + f_1 \cdot t + f_2 \cdot t^2 + \ldots + f_n \cdot t^n + \ldots) \cdot (1 - t - t^2) = B + At</tex> | ||
+ | *: Пользуясь правилами перемножения формальных степенных рядов, получаем <tex>p_n = \sum\limits_{i = 0}^{n} f_i \cdot q_{n - i}</tex>, в частности, <tex>B = f_0 \cdot q_0 = 1 \cdot 1 = 1</tex>, а <tex>A = f_0 \cdot q_1 + f_1 \cdot q_0 = 1 \cdot (-1) + 1 \cdot 1 = 1 - 1 = 0</tex> | ||
+ | *: Таким образом, <tex>F(t) = \dfrac{1}{1 - t - t^2}</tex>--------------------> |
Версия 01:27, 1 июня 2020
Примечание: в редактируемой статье указано, что достаточно рассматривать . :)
Теорема о связи этих понятий
Теорема: |
Последовательность является линейной рекуррентной последовательностью с первыми заданными членами, определяемыми коэффициентами её производящая функция является дробно-рациональной, причём представимой в виде , где , . |
Доказательство: |
Пусть — коэффициенты, задающие линейную рекуррентную последовательность , то есть первые членов заданы, а для следующих справедливо соотношение .Напишем друг под другом несколько производящих функций и соответствующих им формальных степенных рядов:
Сложим все равенства и получим
Для всех выполняется равенство , поэтому в правой части все коэффициенты при степенях, начиная с , обнулятся, а равенство будет выглядеть следующим образом:. Заметим, что второй множитель в левой части равен в точности , а степень правой части не превосходит . Получили требуемое построение.Многочлен можно найти по формуле как числитель получившейся дроби. К результату можно применить взятие его по модулю . Это действие не испортит многочлен, так как его степень строго меньше . При этом мы сократим число операций при вычислении , поскольку достаточно найти только первых членов результирующего ряда, а для этого можно обойтись только первыми слагаемыми степенных рядов, соответствующих производящим функциям и . Итак, .Пусть , , .Перепишем первое равенство, выразив через и : .Так как произведения степенных рядов, получаем . , выполнено для любого . Расписывая по определениюРазобьём полученную сумму на две: . Так как известно, можем определить, чему равны эти суммы. Для первой выполняются равенства:, для всех за исключением нуля. Вторая же компонента равна нулю, поскольку . Тогда .Развернём выражение для :. Перенесём все слагаемые, кроме , вправо:Видим, что . — член линейной рекуррентной последовательности, заданной коэффициентами , причём это выполнено для всех , так как индекс , удовлетворяющий данному условию, выбирался произвольно. |
Примеры
Представление в виде отношения многочленов производящей функции для последовательности чисел Фибоначчи
Введём обозначения:
— производящая функция для чисел Фибоначчи, .
Последовательность задаётся следующим образом:
,, .
Здесь
и , следовательно . К числителю применим формулу . Чтобы получить ответ, требуется найти всего лишь и ., .