Рассмотрим такую задачу. Мы хотим знать, сколько есть целых чисел от 0 до 9999, таких что сумма их цифр равна ровно 9? Ну давайте для удобства смотреть на такие числа как на последовательности из четырёх цифр, где каждая цифра — это цифра от 0 до 9. Если у нас, например, число было двузначное, трёхзначное или однозначное даже, то мы просто допишем в начале нули, и получится последовательность из четырёх цифр. Хорошо. Мы можем посмотреть на эту задачу со стороны разрядов числа, со стороны цифр и посмотреть, что будет. Ну тогда у нас будет 10 вариантов для первой цифры, это может быть любая цифра от 0 до 9. Ну вот для второй уже непонятно. Если, скажем, первая цифра была 9, то для второй цифры остаётся один вариант — 0, потому что иначе сумма уже превысит 9, сумма цифр превысит 9. А если, скажем, первое число было 0, то для второго возможны все варианты. Так что тут вот, с этой стороны непонятно. Ну давайте попробуем по‐другому, давайте попробуем посмотреть с другой стороны. Давайте изобразим вот наши четыре разряда и давайте посмотрим со стороны распределения веса между этими разрядами. Нам нужно распределить вес 9 между этими разрядами. И давайте для начала скажем, что все разряды равны 0, и начнём распределять вес постепенно, добавляя по 1 девять раз. Если мы так делаем, то каждый раз, когда мы добавляем 1, мы выбираем разряд. То есть мы девять раз добавляем 1, каждый раз выбираем один из четырёх разрядов, которые мы будем увеличивать. При этом в этом выборе порядок неважен, важно, что получится в конце, какие получатся числа, а в каком порядке мы прибавляли 1, прибавили мы сначала 1 к первому разряду или ко второму и потом наоборот, не так важно. Так что порядок не имеет значения, а при этом повторение здесь есть, то есть один и тот же разряд может быть выбран несколько раз. Получается, что у нас просто речь о сочетаниях размера 9 и из четырёх вариантов с повторениями. То есть у нас неупорядоченные выборки с повторениями размера 9 из четырёх возможных вариантов. То есть каждой 1 мы выбираем один из разрядов. И ответ получается по известной нам формуле, это C из 9 + (4- 1) по (4- 1). Это C из 12 по 3, это 220. Получается 220 таких чисел. Хорошо, давайте рассмотрим очень похожую задачу: сколько есть целых чисел от 0 до 9999, таких что сумма их цифр равна 10? Ну задача, крайне похожая на предыдущую, поэтому, наверное, можно сделать то же самое, что мы уже делали. Мы распределяем 10 единиц между четырьмя разрядами, и это сочетание размера 10 из четырёх вариантов то же самое, порядок не важен, в котором мы выбираем разряды единицами, при этом повтор, разумеется, есть, и получаются сочетания. Получается вот такой ответ: C из 10 + (4- 1) по (4- 1), C из 13 по 3, 286 возможных чисел. Хорошо. Всё ли хорошо на этом слайде? Всё ли в порядке с этим решением? Ну давайте поставим численный эксперимент, давайте просто проверим. Вот давайте рассмотрим такой код, код на Python, который решает вот ровно эту задачу, подсчитывает число таких вариантов. Ну мы тут подгружаем библиотеку, заводим нулевой счётчик и дальше просто перебираем все возможные последовательности длины 4, состоящие из цифр от 0 до 9, и, если сумма в последовательности оказалась 10, то мы увеличиваем счётчик на 1 и дальше печатаем ответ. Хорошо. Что выдаст этот код, если мы его запустим? Ну можно попробовать и убедиться, что он выдаёт 282. Получается, что он выдаёт вот, что таких чисел 282, а наш ответ был на 4 больше, у нас ответ был 286. Что же, собственно, произошло? Почему наш код выдаёт не то же самое, что было в нашем теоретическом решении? Вроде бы мы всё проверили, а получился какой‐то другой ответ. Ну оказывается, что есть проблема с нашим решением. В нашем подходе может произойти так (в том решении, которое у нас было), что мы отправили все 10 единиц в один и тот же разряд. Мы единицы отправляли в разряды по очереди, каждую единицу в один из четырёх разрядов, и нам разрешались повторения. Ну и вот есть такие варианты, когда мы отправили все 10 единиц в один и тот же разряд. Но это нехорошо, потому что в каждом разряде в конце концов должна получиться цифра от 0 до 9, а если мы отправили до 10 единиц, то там получилось уже число 10, что не допускается. Что же теперь делать, как теперь поправить наше решение. Ну, если мы посчитали что‐то лишнее, а мы посчитали что‐то лишнее, то давайте просто вычтем, что мы посчитали лишнего, и получится правильный ответ. Давайте посмотрим, сколько лишнего мы посчитали, и вычтем, получим правильный ответ. Что мы не должны были считать? Ну вот мы не должны были считать те распределения, в которых все 10 единиц были определены в один и тот же разряд. Сколько есть таких распределений? Ну их ровно четыре. Можно было все единицы отправить в первый разряд, во второй, в третий и в четвёртый. Поэтому таких вариантов четыре, мы посчитали их зря, поэтому надо просто их вычесть, и получится правильный ответ. То есть мы ошиблись на 4, если мы эти 4 вычтем, то получится правильный ответ. И действительно, вот теперь он сходится с тем, что нам выдал код. [МУЗЫКА]