Тип 8 № 59746 

Перебор слов и системы счисления.Подсчет количества разных последовательностей
i
Сколько существует десятичных чисел, которые делятся на 5, при условии что все цифры числа различные?
Спрятать решениеРешение. Для того. чтобы число делилось на 5, оно должно оканчиваться на 0 или 5.
Рассмотрим случай, когда число оканчивается на 0. Если число состоит из одной цифры, то это только 0 (1 вариант). Если из двух, тогда это 0 в разряде единиц и одно из 9 цифр в разряде десятков, тогда это 9*1 вариантов. Если число состоит из трех цифр, тогда это 0 в разряде единиц, одно из 9 цифр в разряде десятков, одна из 8 цифр в разряде сотен (так как цифры числа должны быть разные). Тогда это 8*9*1 вариантов и так далее.
Рассмотрим случай, когда число оканчивается на 5. Если число состоит из одной цифры, то это только 5 (1 вариант). Если из двух, тогда это 5 в разряде единиц и одно из 8 цифр в разряде десятков (0 быть не может, так как число не может с него начинаться), тогда это 8*1 вариантов. Если число состоит из трех цифр, тогда это 5 в разряде единиц, одна из 8 цифр в разряде десятков, одна из 8 цифр в разряде сотен (так как цифры числа должны быть разные). Тогда это 8*8*1 вариантов. И так далее.
Составим программу.
Приведём решение на языке Python.
nol=[1]
pat=[1,8]
for i in range(1,10):
nol.append(nol[i-1]*(10-i))
for i in range(2,10):
pat.append(pat[i-1]*(10-i))
print(sum(pat)+sum(nol))
Ответ: 1863219.
Приведём решение Максима Фатихова на языке Python.
from itertools import permutations
word = '0123456789'
c = 0
for j in range(1,11):
for i in permutations(word,j):
x = ''.join(i)
if x[0] != '0' and (x[-1] == '5' or x[-1] == '0'):
c += 1
print(c + 1) #+1 случай когда число равно 0
Приведём решение Юрия Красильникова на языке Python.
from math import perm # число размещений
print(2*sum(perm(9,k) for k in range(10)) - sum(perm(8,k) for k in range(9)))
Ответ: 1863219