Определите количество чисел, для записи которых в восьмеричной системе счисления требуется ровно
Приведем решение на языке 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)

