Нужно решить программно на Python:
Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня?
Python
8 Тип ЕГЭ Информатика
from itertools import product
def check(v):
k, o, t = 0, 0, 0
for i in v:
if i == 'K':
k = 1
elif i == 'O' and k == 1:
o = 1
elif i == 'T' and o == 1:
t = 1
return k * o * t
a = ['K', 'O', 'M', 'P', '`', 'U', 'T', 'E', 'R']
b = list(product(a, repeat=6))
c = 0
for i in b:
c += check(i)
print(c)
Результатом работы данной программы будет 11249, что и является ответом
Василий Гурьевских
Спасибо!
Банальная комбинаторика.
Три буквы К, О, Т в 6-буквенном слове можно разместить A(3, 6) = 6! / (6 - 3)! способами.
На оставшихся 3 местах 6-буквенного слова оставшиеся 6 букв М, П, Ь, Ю, Е, Р можно разместить A(3, 6) = 6! / (6 - 3)! способами.
Весь код:
Весь код:
Три буквы К, О, Т в 6-буквенном слове можно разместить A(3, 6) = 6! / (6 - 3)! способами.
На оставшихся 3 местах 6-буквенного слова оставшиеся 6 букв М, П, Ь, Ю, Е, Р можно разместить A(3, 6) = 6! / (6 - 3)! способами.
Весь код:
import math
print((math.factorial(6) // math.factorial(3)) ** 2)
Если порядок букв КОТ важен, то для К, О, Т вместо A(3, 6) берём С(3, 6) = 6! / (3! *(6 - 3)!)Весь код:
import math
print(math.factorial(6) ** 2 // math.factorial(3) ** 3)
Василий Гурьевских
Однако верный ответ — 11249 (Сайт Kpolyakov с ответами, но без решений)
from itertools import product
a = ['К', 'О', 'М', 'П', 'Ь', 'Ю', 'Т', 'Е', 'Р']
comb = list(product(a, repeat=6))
count = 0
for word in comb:
search_ptr = 0
for letter in word:
if letter == "КОТ"[search_ptr]:
search_ptr += 1
if search_ptr == 3:
count += 1
break
print(count)
Без itertools: word = "КОМПЬЮТЕР"
count = 0
for c1 in word:
for c2 in word:
for c3 in word:
for c4 in word:
for c5 in word:
for c6 in word:
new_word = c1+c2+c3+c4+c5+c6
search_ptr = 0
for letter in new_word:
if letter == "КОТ"[search_ptr]:
search_ptr += 1
if search_ptr == 3:
count += 1
break
print(count)
Через рекурсию: def generate_words(word, new_word=""):
combinations = []
if len(new_word) == 6:
combinations.append(new_word)
else:
for c in word:
combinations.extend(generate_words(word, new_word + c))
return combinations
word = "КОМПЬЮТЕР"
count = 0
comb = generate_words(word)
for word in comb:
search_ptr = 0
for letter in word:
if letter == "КОТ"[search_ptr]:
search_ptr += 1
if search_ptr == 3:
count += 1
break
print(count)
ss = set()
from itertools import product
for n in set(product( 'КОМПЬЮТЕР', repeat=6 )):
___ n = ''.join(n)
___ if n.find('К') >= 0 and n.rfind('Т')>= 0 and n.find('О', n.find('К'), n.rfind('Т'))>0:
_______ss.add(n)
print(len(ss))
from itertools import product
for n in set(product( 'КОМПЬЮТЕР', repeat=6 )):
___ n = ''.join(n)
___ if n.find('К') >= 0 and n.rfind('Т')>= 0 and n.find('О', n.find('К'), n.rfind('Т'))>0:
_______ss.add(n)
print(len(ss))
Похожие вопросы
- ЕГЭ информатика python
- 25 задание ЕГЭ информатика. Всех четырёх часов не хватит, чтобы дождаться ответа на задачу. Подаю сигнал бедствия!
- 24 задание ЕГЭ ИНФОРМАТИКА PYTHON
- Какие задания из ЕГЭ по информатике можно решить вручную (без программирования)?
- Информатика, 8 класс, Python
- Помогите поэтапно решить задачу из ЕГЭ по информатике. Нужно именно разобраться, как это решается и что в итоге выйдет
- Python. Задание из ЕГЭ по информатике
- Информатика Python задача ЕГЭ
- ИНФОРМАТИКА, Python, 8 класс
- Информатика 8 класс/Задача на python