определите количество шестнадцатеричных пятизначны...
作成日: 2025年7月27日
作成日: 2025年7月27日
определите количество шестнадцатеричных пятизначных чисел, в записи которых есть не более одной цифры 5, и ровно три цифры с числовым значением,не превышающим 8
pythonimport itertools digits = list(range(16)) # 0..15 L = set(range(0,9)) # 0..8 H = set(range(9,16)) # 9..15 def ok(num_tuple): if num_tuple[0]==0: return False # leading zero -> not 5-digit # exactly 3 digits with value <=8 cL = sum(1 for d in num_tuple if d<=8) if cL != 3: return False # at most one 5 if sum(1 for d in num_tuple if d==5) > 1: return False return True count=0 for tup in itertools.product(digits, repeat=5): if ok(tup): count+=1 count 321440
Рассмотрим 16-ричную запись длины 5 (старшая цифра ≠ 0).
Обозначим множества
Нужно ровно три цифры из и две из , причём цифра встречается не более одного раза.
Разобьём по старшей цифре.
A. Старшая цифра в : 7 способов.
Из оставшихся 4 позиций выбираем ещё одну под : .
На двух -позициях по 7 вариантов; на трёх -позициях по 9 вариантов:
B. Старшая цифра в : 8 способов.
Из оставшихся 4 позиций выбираем ещё две под : .
На двух -позициях по 7 вариантов; на двух -позициях по 9 вариантов:
Итого без учёта ограничения на число «5»:
Но среди них недопустимы те, где эта «не‑5» равна 0 и стоит первой: выбрать две позиции под «5» среди последних четырёх , -цифры — по 7:
Значит допустимых с двумя пятёрками:
Итого «плохих» (с ≥2 пятёрок):
Таким образом, искомых пятизначных 16‑ричных чисел 321 440.