1.2 Основные правила перечислительной комбинаторики
Основы перечислительной комбиаторики
1.2 Основные правила перечислительной комбинаторики
модуль 1.2 шаг 3
Имеются пять видов конвертов без марок и четыре вида марок. Сколькими способами можно выбрать конверт с маркой для посылки письма?
Решение
5*4 = 20.
Ответ
20
модуль 1.2 шаг 4
Сколько существует целых чисел между 0 и 999, содержащих ровно одну цифру 7?
Решение
1
sum([str(x).count('7') == 1 for x in range(1000)])
0-9:
7 = 1
10-99:
x7 = 8
7x = 9
100-999:
7xx = 9*9=81
x7x = 8*9=72
xx7 = 8*9 = 72
Ответ
243
модуль 1.2 шаг 5
Сколькими способами можно выбрать на шахматной доске два поля, не лежащие на одной горизонтали или вертикали?
Решение
Ставим первую фигуру- ее координаты = (x,y) (1<=x<=8 и 1<=y<=8, т.е. для первой фигуры координаты x и y можно выбрать восьмью разными способами) координаты второй = (х’,у’) фигуры стоят на одной горизонтальной или на одной вертикальной линии в случае, если их координаты x=x’ или y=y’ так, чтобы они стояли не на одних линиях, для выбора координат второй фигуры у нас существуют 7 разных способов (и для выбора x’, и для выбора y’, т.к. одно значение для каждой координаты уже занято первой фигурой) тогда, для координат x и x’ у нас существует 87=56 (1) вариантов сочетаний аналогично, для y и y’ 87=56 (2) комбинаций в свою очередь, расположение фигур задается сочетанием двух координат. т.е. находим количество сочетаний удовлетворяющих условию задачи вариантов расположения (1)(2)= (87)(87)=3136 т.к. E2-G1 это тоже самое, что G1-E2, делим полученное на 2: 3126:2=1568
Ответ
1 3 5 7 9
модуль 1.2 шаг 6
Сколько чисел в диапазоне от 0 до 999 999 не содержат двух рядом стоящих одинаковых цифр?
Решение
1
2
3
4
5
6
7
8
9
10
11
c1 = 0
mas = [str(i) for i in range(1000000)]
for i in mas:
c2 = 0
for j in range(len(i) - 1):
if i[j] != i[j+1]:
c2 += 1
if c2 == len(i)-1:
c1 += 1
print(c1)
Ответ
597871
модуль 1.2 шаг 6
Сколько чисел в диапазоне от 0 до 999 999 не содержат двух рядом стоящих одинаковых цифр?
Решение
1
2
3
4
5
6
7
8
9
10
11
c1 = 0
mas = [str(i) for i in range(1000000)]
for i in mas:
c2 = 0
for j in range(len(i) - 1):
if i[j] != i[j+1]:
c2 += 1
if c2 == len(i)-1:
c1 += 1
print(c1)
Ответ
597871
модуль 1.2 шаг 9
Сколько целых чисел от 1 до 100 не делится ни на два, ни на три, ни на пять?
Решение
1
len([x for x in range(1,101) if x % 2 != 0 and x % 3 != 0 and x % 5 != 0])
Ответ
26
модуль 1.2 шаг 10
Переплётчик должен переплести 12 различных книг в красный, синий и коричневый цвета. Сколько имеется способов это сделать, если в каждый из трех цветов должна быть переплетена хотя бы одна книга?
Решение
Ответ
519156