Программирование (комбинаторика) презентация

Содержание

Слайд 2

Задача 1

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё

кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы Ж, И, Р. Причём буква Ж появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

Слайд 3

Решение задачи (вручную)

Ж * 2 * 2 *2 *2 = 16
2 * Ж

* 2 * 2 *2 = 16
2 * 2 * Ж * 2 * 2 = 16
2 * 2 * 2 * Ж * 2 = 16
2 * 2 * 2 *2 * Ж = 16
Ответ: 80

Слайд 4

Решение с помощью программы

from itertools import product
k=0
for i in product("ЖИР", repeat=5):
s=''.join(i)
if s.count('Ж')==1:

k=k+1
print(k)

Слайд 5

Задача 2

Вася составляет 6-буквенные слова, в которых могут быть использованы только буквы В,

И, Ш, Н, Я. Причём буква В используется не более одного раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Слово не должно начинаться с буквы Ш и не должно оканчиваться гласными буквами. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?

Слайд 6

Решение задачи (вручную)

Буква В встречается только 0 раз
3 *4 *4 * 4 *4

*2= 6 * 44
Буква В встречается только 1 раз
В * 4 * 4 * 4 *4 *2 = 2 * 44
3 * В * 4 * 4 * 4 * 2=6 * 43
3 * 4 * В * 4 * 4 * 2= 6 * 43 6 * 43 * 4=6*44
3 * 4 * 4 * В * 4 * 2=6 * 43
3 * 4 * 4 * 4 * В * 2=6 * 43
3 *4 * 4 *4 * 4 *В =3 * 44
44 * (6+2+6+3)= 256 * 17 = 4352
Ответ: 4352

Слайд 7

Решение с помощью программы 1 вариант
from itertools import product
k=0
for i in product('ВИШНЯ',repeat=6):
s=''.join(i)
if

s.count('В')<=1 and s[0] !='Ш' and s[5] !='И'and s[5] !='Я':
k=k+1
print(k)

Слайд 8

Решение с помощью программы 2 вариант

alf=['В', 'И','Ш','Н','Я']
k=0
for a1 in alf:
for a2 in alf:

for a3 in alf:
for a4 in alf:
for a5 in alf:
for a6 in alf:
word=a1+a2+a3+a4+a5+a6
if word.count('В')<=1 and word[0] !='Ш' and word[5] !='И' and word[5] !='Я':
k=k+1
print(k)

Слайд 9

Задача 3

Вася составляет 5-буквенные слова, в которых есть только буквы Д,О,К,А, причём в

каждом слове используется буква К, но не более 3 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?

Слайд 10

Решение задачи (вручную)

1. Найдём все возможные комбинации
4*4 *4 *4 * 4=1024
2. Найдем исключения:
K*K*K*K*K

=1 (буква К встречается 5 раз)
3 * 3 * 3 * 3 * 3 = 243 (буква К совсем не встречается)
Рассмотрим варианты, где К встречается 4 раза:
К* К*К*К*3=3
К* К*К*3*К=3
К* К*З*К*К=3
К* 3*К*К*К=3
3* К*К*К*К=3
Всего 15 слов
3. Итак: 1024-1-243-15 = 765
Ответ: 765

Слайд 11

Решение с помощью программы

from itertools import product
k=0
for i in product("ДОКА", repeat=5):
s=''.join(i)
if s.count('К')<=3 and

s.count('К')>0:
k=k+1
print(k)

Слайд 12

Задача 4

Вася составляет 6-буквенные слова, в которых есть только буквы ЧЕТО, причем буква

Е используется в каждом слове хотя бы 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?

Слайд 13

Решение с помощью программы

from itertools import product
k=0
for i in product("ЧЕТО", repeat=6):
s=''.join(i)
if s.count('Е')>=1:
k=k+1
print(k)
Ответ: 3367

Слайд 14

Задача 5

Маша составляет 6-буквенные коды из букв РУЛЬКА. Каждую букву нужно использовать ровно

1 раз, при этом буква Л не может стоять на первом месте. Сколько различных кодов может составить Маша?

Слайд 15

Решение с помощью программы

from itertools import permutations
k=0
for i in permutations("РУЛЬКА",6):
s=''.join(i)
if s[0] !='Л':
k=k+1
print(k)
Ответ: 600

Слайд 16

Задача 6

Слайд 17

Решение с помощью программы

from itertools import permutations
k=0
for i in permutations("ЗЛОЙ"):
s=''.join(i)
if s[0] !='Й' and

"ОЙ" not in s:
k=k+1
print(k)
Ответ:12

Слайд 18

Задача 7

Миша составляет 6-буквенные коды из букв С, А, Л, Ь, С, А.

Каждая допустимая гласная буква может входить в код не более одного раза. Сколько кодов может составить Миша?

Слайд 19

Решение с помощью программы

alf=['С', 'А','Л','Ь']
k=0
for a1 in alf:
for a2 in alf:
for a3 in

alf:
for a4 in alf:
for a5 in alf:
for a6 in alf:
word=a1+a2+a3+a4+a5+a6
if word.count('А')<=1:
k=k+1
print(k)
Ответ: 2187

Слайд 20

Задача 8

Сколько чисел длиной 6 можно составить, если известно, что цифры идут в

порядке убывания, при этом четные и нечетные цифры чередуются?

Слайд 21

Решение с помощью программы

ch=['0', '2','4','6','8']
nch=['1', '3','5','7','9']
k=0
for a1 in ch:
for a2 in nch:

for a3 in ch:
for a4 in nch:
for a5 in ch:
for a6 in nch:
word=a1+a2+a3+a4+a5+a6
if word[0]>word[1]>word[2]>word[3]>word[4]>word[5]:
k=k+1

Слайд 22

Продолжение задачи 8

for a1 in nch:
for a2 in ch:
for a3 in nch:

for a4 in ch:
for a5 in nch:
for a6 in ch:
word=a1+a2+a3+a4+a5+a6
if word[0]>word[1]>word[2]>word[3]>word[4]>word[5]:
k=k+1
print(k)
Ответ: 35

Слайд 23

Задача 9

Имя файла: Программирование-(комбинаторика).pptx
Количество просмотров: 140
Количество скачиваний: 0