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