Автор | Сообщение |
|
Отправлено: 28.11.22 07:52. Заголовок: Комбинаторика. Задания 8
В задаче № 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
[только новые]
|
|
|
Отправлено: 28.11.22 07:56. Заголовок: Комбинаторика № 5749
(№ 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) }
|
|
|
|
Отправлено: 30.12.22 04:11. Заголовок: Елена_10 пишет: так..
Елена_10 пишет: цитата: | так, что в них можно переставить буквы и получить палиндром |
| У меня тоже 729, видимо мы одинаково понимаем вопрос, но не совсем так, как его ставит автор! Может быть, что под переставить буквы нужно понимать следующее, допустим было слово ОРПОР перестановкой двух символов получим палиндром - РОПОР В таком случае, даже из любого слова, состоящего из трех разных символов, например ПРООР или ПРРОО можно построить как минимум по 2 палиндрома!
|
|
|
|
Отправлено: 29.12.22 06:15. Заголовок: Посмотрите решение, ..
Елена_10 пишет: цитата: | порядке или же порядок расположения этих букв важен? Ответ не сходится |
| Порядок важен! Посмотрите решение, предложенное Поляковым К.Ю., и сможете скорректировать свое решение 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 )
|
|
|
|
Отправлено: 29.12.22 06:22. Заголовок: а можно и так: ss =..
а можно и так: 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) )
|
|
|
|
Отправлено: 30.12.22 03:29. Заголовок: А вот еще более упрощенный вариант задачи 302 ege 8
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))
|
|
|
|
Отправлено: 07.01.23 11:53. Заголовок: Ответ верен, если бу..
Ответ верен, если буквы могут повторяться. Иначе верный ответ 2400 В решении Полякова (если распечатать учтенные им слова) есть такие слова: 'КОКТКК', 'ККОКТК', 'КОТККК', 'ККККОТ', 'КККОКТ', 'ККОТКК', 'КОКККТ', 'КККОТК' Буква К повторяется...
|
|
|
|
Отправлено: 08.01.23 10:11. Заголовок: Ж пишет: Ответ вере..
Ж пишет: цитата: | Ответ верен, если буквы могут повторяться. Иначе верный ответ 2400 В решении Полякова (если распечатать учтенные им слова) есть такие слова: 'КОКТКК', 'ККОКТК', 'КОТККК', 'ККККОТ', 'КККОКТ', 'ККОТКК', 'КОКККТ', 'КККОТК' Буква К повторяется... |
| Пофиг, в условии оговорено, если убрать 3 буквы: 'КО КТ КК', где сказано, что они не должны быть буквами К? К примеру, убираем ровно три буквы, выделенных красным, и получаем слово - КОТ
|
|
|
|
Отправлено: 07.01.23 14:43. Заголовок: Решение с помощью ре..
Решение с помощью регулярных выражений: 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))
|
|
|
|
Отправлено: 09.01.23 05:10. Заголовок: Ж пишет: alfavit=..
Ж пишет: цитата: | 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
|
|
|
|
Отправлено: 09.01.23 05:20. Заголовок: s11kai пишет: NameE..
s11kai пишет: цитата: | NameError: name 'fullmatch' is not defined |
| Код удалось запустить, после небольшой доработки: 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)) Причем вместо указанного Вами ответа в 2400, он дал ответ 11249
|
|
|
|
Отправлено: 08.01.23 10:04. Заголовок: Елена_10 пишет: № 5..
Елена_10 пишет: цитата: | № 5750. (М. Байрамгулов) Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня? |
| А где здесь оговаривается, что буквы не могут повторяться? А раз нет, то и ответ = 11249
|
|
|
|
|
Отправлено: 08.01.23 14:23. Заголовок: Ваня составляет 6-бу..
цитата: | Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР |
| Представьте, что вы разрезали слово на буквы и из них собираете новые слова. Там нет повторяющихся... , поэтому считаю, что формулировка неоднозначна. Это уже вопросы к русскому языку и его пониманию... Я понимаю так... Иначе, зачем в аналогичном задании 5720 все так подробно оговорено: цитата: | Алина составляет пятибуквенные слова из букв слова POLYGON, причем известно, что буквы в словах могут повторяться любое количество раз или же не встречаться вовсе. Помогите Алине найти количество различных слов, являющимися палиндромами и содержащими в середине гласную букву. |
|
|
|
|
|
Отправлено: 09.01.23 05:05. Заголовок: Ж пишет: поэтому сч..
Ж пишет: цитата: | поэтому считаю, что формулировка неоднозначна. Это уже вопросы к русскому языку и его пониманию... |
| Нашел автора этого задания в ege8 от Полякова: 302) (М. Байрамгулов) Ваня составляет 6-буквенные слова из букв слова КОМПЬЮТЕР так, что в них можно убрать три буквы и получить слово КОТ. Сколько различных слов может составить Ваня? Что характерно, там стоит ответ 11249
|
|
|
|
Отправлено: 09.01.23 05:32. Заголовок: Ж пишет: Представьт..
Ж пишет: цитата: | Представьте, что вы разрезали слово на буквы и из них собираете новые слова |
| А почему не взять "кассу" из букваря, где под каждой буквой лежит некоторое количество их копий
|
|
|
|
Отправлено: 09.01.23 11:25. Заголовок: Возможно потому, что..
Возможно потому, что буквы сказали брать не из кассы, а из слова... А в слове КОМПЬЮТЕР ровно 9 букв и клонов нет... И я не оспариваю ответ, я беру на заметку, что авторы так понимают это задание. И в будущем буду учитывать их понимание. И есть же формулировки, которые эту неоднозначность не порождают: Сколько пятибуквенных слов можно составить из букв данного алфавита А, Б, В, Г, Д Вася составляет 5-буквенные слова, в которых встречаются только буквы А, Б, В, Г,
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|