Задания
Версия для печати и копирования в MS Word
Тип 8 № 72566
i

Опре­де­ли­те ко­ли­че­ство вось­ми­знач­ных 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 цифр (пер­вым ноль быть не может).


Аналоги к заданию № 72566: 72593 Все

Источник: Стат­Град: Тре­ни­ро­воч­ная ра­бо­та 24.10.2024 ИН2410101