Определите количество восьмизначных 15-ричных чисел, в записи которых ровно два нуля и не более четырёх цифр, для записи которых используются буквы.
Приведём аналитическое Юрия Красильникова решение.
Требуется разместить два нуля на двух из семи последних мест в восьмизначном числе (ноль не может стоять на первом месте).
Это 21 вариант (число сочетаний из 7 по 2).
Шесть оставшихся мест мы должны заполнять остальными цифрами (кроме нуля). Всего имеется 146 - 7529536 вариантов.
Из этого множества нужно исключить числа, в которых все шесть цифр с буквенными обозначениями, а также числа, где одна цифра - десятичная, а остальные пять - буквенные.
Чисел из шести цифр с буквенными обозначениями 56 = 15625.
Чисел, в которых одна цифра десятичная, а пять - буквенные, 6 · 9 · 55 = 168750.
Получаем ответ: 21 · (146-56-6 · 9 · 55) = 154248381.
Ответ можно получить с помощью следующей программы на Питоне:
import math
print(math.comb(7,2)*(14**6-5**6-6*9*5**5))
Приведём решение на языке Python.
from itertools import product
count = 0
for i in product ('01a', repeat = 8 ):
s = ''.join(i)
if s[0] != '0' and s.count('0') == 2 and s.count('a') <5:
count += 9**s.count('1') * 5**s.count('a')
print(count)
Ответ:154248381.
Приведём решение Бориса Савельева на языке Python.
from itertools import product
s = product('123456789ABCDE', repeat=6)
count = 0
for i in s:
p = ''.join(i)
if p.count('A') + p.count('B') + p.count('C') + p.count('D') + p.count('E') < 5:
count += 1
print(count * 21) # 21 способ выбрать две позиции для нулей среди 7 цифр (первым ноль быть не может).

