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

Опре­де­ли­те ко­ли­че­ство чисел, для за­пи­си ко­то­рых в вось­ме­рич­ной си­сте­ме счис­ле­ния тре­бу­ет­ся ровно 11 цифр, ровно 3 из ко­то­рых  — нечётные, и ни­ка­кие две нечётные цифры не стоят рядом.

Спрятать решение

Ре­ше­ние.

При­ве­дем ре­ше­ние на языке Python.

from itertools import product as p

 

h = list(filter(lambda x: x.count('0') == 3 and '00' not in x, list(map(lambda x: ''.join(x), p('01', repeat=11)))))

p0 = len(list(p('0246', repeat=8))) * len([1 for i in h if i[0] == '0'])

p1 = len(list(filter(lambda x: x[0] != '0', p('0246', repeat=8)))) * len([1 for i in h if i[0] == '1'])

print(len(list(p('1357',repeat=3))) * (p0 + p1))

 

Ответ: 293601280.

 

При­ве­дем ре­ше­ние Бо­ри­са Са­ве­лье­ва на языке Python.

from itertools import product

s = product('НЧ', repeat = 11)

cnt1 = 0 #ко­ли­че­ство со­че­та­ний пер­вый нечет

cnt2 = 0 #ко­ли­че­ство со­че­та­ний пер­вый чет

for i in s:

p=''.join(i)

if p.count('НН') == 0 and p.count('Н') == 3:

if p[0] == 'Н':

cnt1 += 1

else:

cnt2 += 1

print(4**11*cnt1 + 3*4**10*cnt2)

 

 

При­ве­дем ре­ше­ние Юрия Во­ро­ши­ло­ва на языке Python.

a=[]

k=0

for i in range(2**11):

s=bin(i)[2:]

while len(s)<11: s='0'+s

if (s.count('1')==3) and '11' not in s:

a.append(s)

if s[0]=='0': k+=1

n=(4*len(a)-k)*4**10

print(n)


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