Задача о счастливых билетах — различия между версиями
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>n</tex>-значных чисел с суммой <tex>k</tex> как <tex>D_n^k</tex> (число может содержать ведущие нули). <tex>2n</tex>-значный счастливый билет состоит из двух частей: левой (<tex>n</tex> цифр) и правой (тоже <tex>n</tex> цифр), причём в обеих частях сумма цифр одинакова. Зафиксируем число в левой части (это можно сделать <tex>D_n^k</tex> способами), для него будет существовать <tex>D_n^k</tex> возможных вариантов числа в правой части, следовательно количество счастливых билетов с суммой <tex>k</tex> в одной из частей равно <tex>(D_n^k)^2</tex>. Значит общее число билетов равно <tex>L_n = \sum_{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>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_{j=0}^{k}D_{n-1}^{k-j}</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_{j=0}^{k}D_{n-1}^{k-j}</tex>. | ||
Строка 20: | Строка 20: | ||
[[Динамическое программирование]] | [[Динамическое программирование]] | ||
== Источники информации == | == Источники информации == | ||
− | [http://www.genfunc.ru/theory/lucky/] | + | * [http://www.genfunc.ru/theory/lucky/ Задача о счастливых билетах :: Производящие функции] |
[[Категория:Дискретная математика и алгоритмы]] | [[Категория:Дискретная математика и алгоритмы]] | ||
[[Категория:Комбинаторика]] | [[Категория:Комбинаторика]] | ||
+ | [[Категория:Производящие функции]] |
Версия 13:22, 6 июня 2017
Троллейбусный (трамвайный) билет имеет номер, состоящий из шести цифр. Билет считается счастливым, если сумма первых трёх цифр равна сумме последних трёх, например,
. Известно, что количество счастливых билетов из шести цифр равно .Задача: |
Для натурального | найти количество -значных счастливых билетов .
Содержание
Решение с помощью динамического программирования
Обозначим количество
-значных чисел с суммой как (число может содержать ведущие нули). -значный счастливый билет состоит из двух частей: левой ( цифр) и правой (тоже цифр), причём в обеих частях сумма цифр одинакова. Зафиксируем число в левой части (это можно сделать способами), для него будет существовать возможных вариантов числа в правой части, следовательно количество счастливых билетов с суммой в одной из частей равно . Значит общее число билетов равно . Верхний индекс суммирования равен , так как максимальная сумма цифр в одной части билета равна . Также можно сопоставить счастливому билету -значное число с суммой : , причем это соответствие взаимно-однозначно, поэтому . Осталось научиться вычислять . Положим . При количество -значных чисел с суммой цифр можно выразить через количество -значных чисел, добавляя к ним -ю цифру, которая может быть равна : .Решение с помощью производящей функции
Выпишем производящую функцию
, коэффициент при у которой будет равен : Действительно, однозначное число с суммой цифр (для ) можно представить одним способом. Для — ноль способов. Заметим, что — производящая функция для чисел , поскольку коэффициент при получается перебором всех возможных комбинаций из цифр, равных в сумме . Ответом на задачу будет . Перепишем производящую функцию в ином виде: и получим, что . Так как , , что при дает .