Задача о счастливых билетах — различия между версиями
Rgolchin (обсуждение | вклад) |
Rgolchin (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
__TOC__ | __TOC__ | ||
== Общие идеи == | == Общие идеи == | ||
− | Обозначим количество <tex>n</tex>-значных чисел с суммой <tex>k</tex> как <tex>D_n^k</tex> (число может содержать ведущие нули). <tex>2n</tex>-значный счастливый билет состоит из двух частей: левой (<tex>n</tex> цифр) и правой (тоже <tex>n</tex> цифр), причём в обеих частях сумма цифр одинакова. Зафиксируем <tex>x</tex> {{---}} <tex>n</tex>-значное число с суммой <tex>k</tex> в левой части (всего таких чисел <tex>D_n^k</tex>, значит это можно сделать <tex>D_n^k</tex> способами). Для него будет существовать <tex>D_n^k</tex> возможных вариантов числа в правой части, следовательно количество счастливых билетов с суммой <tex>k</tex> в одной из частей равно <tex>(D_n^k)^2</tex>. Значит общее число билетов равно <tex>L_n = \sum\limits_{k=0}^{9n} (D_{n}^{k})^2</tex>. Верхний индекс суммирования равен <tex>9n</tex>, так как максимальная сумма цифр в одной части билета равна <tex>9n</tex>. Также можно сопоставить счастливому билету <tex>a_1a_2\ldots a_n b_1b_2 \ldots b_n</tex> <tex>2n</tex>-значное число с суммой <tex>9n</tex>: <tex>a_1a_2\ldots a_n (9-b_1)(9-b_2) \ldots (9-b_n)</tex>, причем это соответствие взаимно-однозначно, значит множества счастливых билетов и <tex>2n</tex>-значных чисел с суммой <tex>9n</tex>равномощны, поэтому <tex>L_n=D_{2n}^{9n}</tex>. | + | Обозначим количество <tex>n</tex>-значных чисел с суммой <tex>k</tex> как <tex>D_n^k</tex> (число может содержать ведущие нули). <tex>2n</tex>-значный счастливый билет состоит из двух частей: левой (<tex>n</tex> цифр) и правой (тоже <tex>n</tex> цифр), причём в обеих частях сумма цифр одинакова. Зафиксируем <tex>x</tex> {{---}} <tex>n</tex>-значное число с суммой <tex>k</tex> в левой части (всего таких чисел <tex>D_n^k</tex>, значит это можно сделать <tex>D_n^k</tex> способами). Для него будет существовать <tex>D_n^k</tex> возможных вариантов числа в правой части, следовательно количество счастливых билетов с суммой <tex>k</tex> в одной из частей равно <tex>(D_n^k)^2</tex>. Значит общее число билетов равно <tex>L_n = \sum\limits_{k=0}^{9n} (D_{n}^{k})^2</tex>. Верхний индекс суммирования равен <tex>9n</tex>, так как максимальная сумма цифр в одной части билета равна <tex>9n</tex>. Также можно сопоставить счастливому билету <tex>a_1a_2\ldots a_n b_1b_2 \ldots b_n</tex> <tex>2n</tex>-значное число с суммой <tex>9n</tex>: <tex>a_1a_2\ldots a_n (9-b_1)(9-b_2) \ldots (9-b_n)</tex>, причем это соответствие взаимно-однозначно, значит множества счастливых билетов и <tex>2n</tex>-значных чисел с суммой <tex>9n</tex> равномощны, поэтому <tex>L_n=D_{2n}^{9n}</tex>. |
== Метод динамического программирования == | == Метод динамического программирования == | ||
Научимся вычислять <tex>D_n^k</tex>. Положим <tex>D_0^k=\begin{cases}1,&k=0\\0,&k>0\end{cases}</tex>. При <tex>n>0</tex> количество <tex>n</tex>-значных чисел с суммой цифр <tex>k</tex> можно выразить через количество <tex>(n-1)</tex>-значных чисел, добавляя к ним <tex>n</tex>-ю цифру, которая может быть равна <tex>0, 1, \ldots, 9</tex>: <tex>D_n^k=\sum\limits_{j=0}^{9}D_{n-1}^{k-j}</tex>. Ответ {{---}} в <tex>D_{2n}^{9n}</tex>, алгоритм будет работать за <tex>O(n^2)</tex>. | Научимся вычислять <tex>D_n^k</tex>. Положим <tex>D_0^k=\begin{cases}1,&k=0\\0,&k>0\end{cases}</tex>. При <tex>n>0</tex> количество <tex>n</tex>-значных чисел с суммой цифр <tex>k</tex> можно выразить через количество <tex>(n-1)</tex>-значных чисел, добавляя к ним <tex>n</tex>-ю цифру, которая может быть равна <tex>0, 1, \ldots, 9</tex>: <tex>D_n^k=\sum\limits_{j=0}^{9}D_{n-1}^{k-j}</tex>. Ответ {{---}} в <tex>D_{2n}^{9n}</tex>, алгоритм будет работать за <tex>O(n^2)</tex>. |
Версия 00:17, 15 июня 2017
Троллейбусный (трамвайный) билет имеет номер, состоящий из шести цифр. Билет считается счастливым, если сумма первых трёх цифр равна сумме последних трёх, например,
. Известно, что количество счастливых билетов из шести цифр равно .Задача: |
Для натурального | найти количество -значных счастливых билетов .
Содержание
Общие идеи
Обозначим количество
-значных чисел с суммой как (число может содержать ведущие нули). -значный счастливый билет состоит из двух частей: левой ( цифр) и правой (тоже цифр), причём в обеих частях сумма цифр одинакова. Зафиксируем — -значное число с суммой в левой части (всего таких чисел , значит это можно сделать способами). Для него будет существовать возможных вариантов числа в правой части, следовательно количество счастливых билетов с суммой в одной из частей равно . Значит общее число билетов равно . Верхний индекс суммирования равен , так как максимальная сумма цифр в одной части билета равна . Также можно сопоставить счастливому билету -значное число с суммой : , причем это соответствие взаимно-однозначно, значит множества счастливых билетов и -значных чисел с суммой равномощны, поэтому .Метод динамического программирования
Научимся вычислять
. Положим . При количество -значных чисел с суммой цифр можно выразить через количество -значных чисел, добавляя к ним -ю цифру, которая может быть равна : . Ответ — в , алгоритм будет работать за .Метод производящей функции
Выпишем производящую функцию
, коэффициент при у которой будет равен : Действительно, однозначное число с суммой цифр (для ) можно представить одним способом. Для — ноль способов. Заметим, что — производящая функция для чисел , поскольку коэффициент при получается перебором всех возможных комбинаций из цифр, равных в сумме . Ответом на задачу будет . Перепишем производящую функцию в ином виде: и получим, что . Так как , понятно, что , что при дает .Решение с помощью формулы включения-исключения
Как мы заметили раньше, ответ на задачу равен количеству шестизначных билетов с суммой [1] из по , в котором -й элемент повторяется раз. Так как это сопоставление взаимно-однозначно, количество расстановок равно количеству сочетаний с повторениями, т.е. . Число всех расстановок неотрицательных целых чисел с суммой в шесть позиций равно . Число расстановок одинаково для всех и равно . В самом деле, мы можем поставить в -ю позицию число , а оставшуюся сумму произвольно распределить по шести позициям. Аналогично, число расстановок одинаково для любой пары и равно : мы выбираем две позиции и ставим в них и произвольно распределяем оставшуюся сумму по шести позициям. Таким образом, искомое количество расстановок равно
. Рассмотрим расстановки целых неотрицательных чисел на шести позициях, дающих в сумме ; обозначим их множество . Выделим шесть его подмножеств , где -е множество состоит из расстановок, у которых в -й позиции стоит число, не меньшее . Число счастливых билетов равно числу расстановок, не принадлежащих ни одному из множеств. Расстановке из чисел с суммой сопоставим сочетание с повторениямиРешение путем интегрирования
Рассмотрим многочлен Лорана (т.е. многочлен, в котором допускаются отрицательные степени) [2] из комплексного анализа:
. Заметим, что его свободный член равен . Воспользуемся теоремой КошиТеорема (Коши): |
Для любого многочлена Лорана его свободный член равен
|
Упростим многочлен
:- и применим замену :
Рассмотрим функцию [3] Этот метод позволяет оценить значение интеграла
на . Вне отрезка , значит интеграл по этой части не больше , основная часть сосредоточена на . Оценим интеграл по этому промежутку с помощью метода стационарной фазы.- . При значение интеграла определяется поведением его фазы, т.е. , в окрестности стационарной точки (точки, где , или, что то же самое, ). Вблизи , а . При больших получим
- [4]. Заметим, что при , поэтому интеграл примерно равен . , где — функция ошибок
Полагая
и вспоминая выражение для , получаем приближенное равенство:Этот результат с хорошей точностью (отклонение составляет не более
) приближает искомое значение.Способ с конечной суммой
Рассмотрим функцию
. Как доказано выше, . Для интеграла можно выписать приближенную формулу и получить . Интересно, что при достаточно большом это равенство становится точным.Утверждение: |
При и любом , где . |
По определению, а свободный член , где — коэффициенты многочлена . Обозначим . Докажем, что . Раскроем : . Рассмотрим внутреннюю сумму: . Получили две геометрические прогрессии со знаменателями, не равными : . Значит искомая сумма равна , так как . Таким образом, , равен , как известно из предыдущего раздела. |
См. также
Примечания
Источники информации
- Ландо С. К., Лекции о производящих функциях. — 3-е изд., испр. — М.: МЦНМО, 2007. — 144с. ISBN 978-5-94057-042-4