Просмотр содержимого документа
«Комбинаторика с числами»
Задача 1. Сколько существует чисел, восьмеричная запись которых содержит 7 цифр, причём все цифры различны и никакие две чётные и две нечётные цифры не стоят рядом.
Решение:
k1=0
k2=0
for x1 in '1234567':
for x2 in '01234567':
for x3 in '01234567':
for x4 in '01234567':
for x5 in '01234567':
for x6 in '01234567':
for x7 in '01234567':
s=x1+x2+x3+x4+x5+x6+x7
if s.count(x1)==1 and s.count(x2)==1 and s.count(x3)==1 and s.count(x4)==1 and s.count(x5)==1 and s.count(x6)==1 and s.count(x7)==1:
if int(x1)%2==0 and int(x2)%2==1 and int(x3)%2==0 and int(x4)%2==1 and int(x5)%2==0 and int(x6)%2==1 and int(x7)%2==0:
k1=k1+1
if int(x1)%2==1 and int(x2)%2==0 and int(x3)%2==1 and int(x4)%2==0 and int(x5)%2==1 and int(x6)%2==0 and int(x7)%2==1:
k2=k2+1
print(k1+k2)
Ответ: 1008
Задача 2. Сколько существует четырёхзначных чисел, записанных в восьмеричной системе счисления, в записи которых ровно две одинаковые цифры, причём стоящие рядом ?
Решение:
k=0
for x1 in '1234567':
for x2 in '01234567':
for x3 in '01234567':
for x4 in '01234567':
if (x1==x2 and x2!=x3 and x2!=x4 and x3!=x4) or (x2==x3 and x3!=x1 and x3!=x4 and x1!=x4) or (x3==x4 and x3!=x2 and x3!=x1 and x1!=x2):
k=k+1
print(k)
Ответ: 882
Задача 3. Сколько существует различных трёхзначных чисел в шестнадцатиричной системе счисления, в записи которых цифры следуют слева направо в невозрастающем порядке?
Решение:
k=0
for x1 in '123456789ABCDEF':
for x2 in '0123456789ABCDEF':
for x3 in '0123456789ABCDEF':
if x1 = x2 = x3:
k=k+1
print(k)
Ответ: 815
Задача 4.
Сколько существует чисел, делящихся на 5, десятичная запись которых содержит 7 цифр, причём все цифры различны и никакие две чётные и две нечётные цифры не стоят рядом.
Решение:
k=0
for x1 in '123456789':
for x2 in '0123456789':
for x3 in '0123456789':
for x4 in '0123456789':
for x5 in '0123456789':
for x6 in '0123456789':
for x7 in '05':
s=x1+x2+x3+x4+x5+x6+x7
if s.count(x1)==1 and s.count(x2)==1 and s.count(x3)==1 and s.count(x4)==1 and s.count(x5)==1 and s.count(x6)==1 and s.count(x7)==1:
if x1 in '02468' and x2 in '13579' and x3 in '02468' and x4 in '13579' and x5 in '02468' and x6 in '13579' and x7 in '02468':
k=k+1
if x1 in '13579' and x2 in '02468' and x3 in '13579' and x4 in '02468' and x5 in '13579' and x6 in '02468' and x7 in '13579':
k=k+1
print(k)
Ответ: 2880
Задача 5
Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи цифру 1, в которых все цифры различны и никакие две чётные или две нечётные цифры не стоят рядом?
Решение
from itertools import *
k = 0
c = '0246'
n = '357'
for i in permutations('0234567', r=5):
a=''.join(i)
if a[0] == '0':
continue
if a[0] in c and a[1] in n and a[2] in c and a[3] in n and a[4] in c:
k+=1
if a[0] in n and a[1] in c and a[2] in n and a[3] in c and a[4] in n:
k+=1
print(k)
Ответ: 180