Андрей
Высший разум
(474962)
1 месяц назад
Потому, что эти задачи решаются БЕЗ написания кода. Простейшая комбинаторика.
Вариантов размещения 2 нулей:
C(2, 7) = 7! / (2! * (7 - 2)!) = 7 * 6 / 2 = 21, если числа без ведущего 0
C(2, 8) = 8! / (2! * (8 - 2)!) = 8 * 7 / 2 = 28, если ведущий 0 допустим.
После размещения нулей у нас осталось 6 незанятых позиций, на которых можно разместить 9 цифр (0 уже стоит) и 6 букв.
В числе 0 букв: 9⁶ вариантов.
В числе 1 буква: 6¹ * C(1, 6) * 9⁵ = 6 * 6 * 9⁵ вариантов.
В числе 2 буквы: 6² * C(2, 6) * 9⁴ = 6² * 15 * 9⁴ вариантов.
В числе 3 буквы: 6³ * C(3, 6) * 9³ = 6³ * 20 * 9³ вариантов.
В числе 4 буквы: 6⁴ * C(4, 6) * 9² = 6⁴ * 15 * 9² вариантов.
Ответ: 21 * (9⁶ + 6 * 6 * 9⁵ + 6² * 15 * 9⁴ + 6³ * 20 * 9³ + 6⁴ * 15 * 9²)
Если ведущий 0 допустим, 21 меняется на 28.
16ричных чисел, в записи которых ровно два нуля и не более четырёх цифр, для записи которых используются буквы.
s="0123456789ABCDEF"
k=0
for c1 in s[1:]:
for c2 in s:
for c3 in s:
for c4 in s:
for c5 in s:
for c6 in s:
for c7 in s:
for c8 in s:
p=c1+c2+c3+c4+c5+c6+c7+c8
q=p.count("A")+p.count("B")+p.count("C")+p.count("D")+p.count("E")+p.count("F")
if p.count("0")==2 and q<=4:
k+=1
print(k)