Форум » Кодирование и декодирование информации » Комбинаторика. Задания 8 » Ответить

Комбинаторика. Задания 8

Елена_10: В задаче № 5750. (М. Байрамгулов) Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня? Прошу уточнить условие. Что имеется ввиду? Все возможные перестановки с повторениями из 6 букв, в которых есть буквы К О Т в любом порядке или же порядок расположения этих букв важен? Ответ не сходится {from itertools import * al='КОМПЬЮТЕР' a = list(product(al, repeat=6)) b = list(permutations(al, 6)) k=0 for i in a: sl=''.join(i) #print(sl) k1=sl.find('К') k2=sl.find('О') k3=sl.find('Т') if 'К'in sl and 'О'in sl and 'Т'in sl: if k1<k2<k3: #print(sl) k=k+1 print('Размещения с повторениями ',k) for i in b: sl=''.join(i) #print(sl) k1=sl.find('К') k2=sl.find('О') k3=sl.find('Т') if 'К'in sl and 'О'in sl and 'Т'in sl: if k1<k2<k3: #print(sl) k=k+1 print('Перестановки ',k) #Ответ: 11249 # product(al, repeat=6) дает 8550 # Перестановки - permutations 10950}

Ответов - 22, стр: 1 2 All

Елена_10: (№ 5749) (М. Байрамгулов) Миша составляет 5-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно переставить буквы и получить палиндром. Сколько различных слов может составить Миша? Ответ на сайте 8649...Ответ не сходится, у меня 729 {from itertools import * al='КОМПЬЮТЕР' c=0 sl='' b = list(product(al, repeat=5)) k=0 print('Перестановки ',k) for i in b: sl=''.join(i) #print(sl) if sl[0]==sl[4] and sl[1]==sl[3]: print(sl) k=k+1 print('Количество слов ',k) }

s11kai: Елена_10 пишет: так, что в них можно переставить буквы и получить палиндром У меня тоже 729, видимо мы одинаково понимаем вопрос, но не совсем так, как его ставит автор! Может быть, что под переставить буквы нужно понимать следующее, допустим было слово ОРПОР перестановкой двух символов получим палиндром - РОПОР В таком случае, даже из любого слова, состоящего из трех разных символов, например ПРООР или ПРРОО можно построить как минимум по 2 палиндрома!

s11kai: Елена_10 пишет: порядке или же порядок расположения этих букв важен? Ответ не сходится Порядок важен! Посмотрите решение, предложенное Поляковым К.Ю., и сможете скорректировать свое решение [pre2] count = 0 from itertools import product for n in set(product( 'КОМПЬЮТЕР', repeat=6 )): n = ''.join(n) if n.find('К') >= 0 and n.rfind('Т')>= 0: for j in range(n.find('К')+1, n.rfind('Т')): if n[j] == 'О': count += 1 break print( count ) [/pre2]


s11kai: а можно и так: [pre2] ss = set() from itertools import product for n in set(product( 'КОМПЬЮТЕР', repeat=6 )): n = ''.join(n) if n.find('К') >= 0 and n.rfind('Т')>= 0: for j in range(n.find('К')+1, n.rfind('Т')): if n[j] == 'О': ss.add(n) print( len(ss) ) [/pre2]

s11kai: [pre2] ss = set() from itertools import product for n in set(product( 'КОМПЬЮТЕР', repeat=6 )): n = ''.join(n) if n.find('К') >= 0 and n.rfind('Т')>= 0: if n.find('О', n.find('К'), n.rfind('Т'))>0: ss.add(n) print(len(ss)) [/pre2]

Ж: Ответ верен, если буквы могут повторяться. Иначе верный ответ 2400 В решении Полякова (если распечатать учтенные им слова) есть такие слова: 'КОКТКК', 'ККОКТК', 'КОТККК', 'ККККОТ', 'КККОКТ', 'ККОТКК', 'КОКККТ', 'КККОТК' Буква К повторяется...

s11kai: Ж пишет: Ответ верен, если буквы могут повторяться. Иначе верный ответ 2400 В решении Полякова (если распечатать учтенные им слова) есть такие слова: 'КОКТКК', 'ККОКТК', 'КОТККК', 'ККККОТ', 'КККОКТ', 'ККОТКК', 'КОКККТ', 'КККОТК' Буква К повторяется... Пофиг, в условии оговорено, если убрать 3 буквы: 'КОКТКК', где сказано, что они не должны быть буквами К? К примеру, убираем ровно три буквы, выделенных красным, и получаем слово - КОТ

Ж: Решение с помощью регулярных выражений: [pre2] alfavit='КОМПЬЮТЕР'; spisok=[] for slova in product(alfavit,repeat=6): # ответ 2400 #for slova in permutations(alfavit,6): # ответ 11249 slovo=''.join(slova) if fullmatch('.*К.*О.*Т.*',slovo): spisok.append(slovo) print(len(spisok)) [/pre2]

s11kai: Ж пишет: alfavit='КОМПЬЮТЕР'; spisok=[] for slova in product(alfavit,repeat=6): # ответ 2400 #for slova in permutations(alfavit,6): # ответ 11249 slovo=''.join(slova) if fullmatch('.*К.*О.*Т.*',slovo): spisok.append(slovo) print(len(spisok)) запустил ваш код и вот что получил: Traceback (most recent call last): ... if fullmatch('.*К.*О.*Т.*',slovo): NameError: name 'fullmatch' is not defined

s11kai: s11kai пишет: NameError: name 'fullmatch' is not defined Код удалось запустить, после небольшой доработки: [pre2] import re alfavit='КОМПЬЮТЕР'; spisok=[] for slova in product(alfavit,repeat=6): # ответ 2400 #for slova in permutations(alfavit,6): # ответ 11249 slovo=''.join(slova) if re.fullmatch('.*К.*О.*Т.*',slovo): spisok.append(slovo) print(len(spisok)) [/pre2] Причем вместо указанного Вами ответа в 2400, он дал ответ 11249

s11kai: Елена_10 пишет: № 5750. (М. Байрамгулов) Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня? А где здесь оговаривается, что буквы не могут повторяться? А раз нет, то и ответ = 11249

Ж: Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР Представьте, что вы разрезали слово на буквы и из них собираете новые слова. Там нет повторяющихся... , поэтому считаю, что формулировка неоднозначна. Это уже вопросы к русскому языку и его пониманию... Я понимаю так... Иначе, зачем в аналогичном задании 5720 все так подробно оговорено: Алина составляет пятибуквенные слова из букв слова POLYGON, причем известно, что буквы в словах могут повторяться любое количество раз или же не встречаться вовсе. Помогите Алине найти количество различных слов, являющимися палиндромами и содержащими в середине гласную букву.

s11kai: Ж пишет: поэтому считаю, что формулировка неоднозначна. Это уже вопросы к русскому языку и его пониманию... Нашел автора этого задания в ege8 от Полякова: 302) (М. Байрамгулов) Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня? Что характерно, там стоит ответ 11249

s11kai: Ж пишет: Представьте, что вы разрезали слово на буквы и из них собираете новые слова А почему не взять "кассу" из букваря, где под каждой буквой лежит некоторое количество их копий

Ж: Возможно потому, что буквы сказали брать не из кассы, а из слова... А в слове КОМПЬЮТЕР ровно 9 букв и клонов нет... И я не оспариваю ответ, я беру на заметку, что авторы так понимают это задание. И в будущем буду учитывать их понимание. И есть же формулировки, которые эту неоднозначность не порождают: Сколько пятибуквенных слов можно составить из букв данного алфавита А, Б, В, Г, Д Вася составляет 5-буквенные слова, в которых встречаются только буквы А, Б, В, Г,



полная версия страницы