Автор | Сообщение |
|
Отправлено: 13.06.22 19:48. Заголовок: Задание 8 (№4245)
(№ 4245) (А. Куканова) Света составляет 6-буквенные слова из букв С, О, Л, Н, Ц, Е, причём буква О встречается в слове не более 2 раз, а буква Ц — ровно 1 раз. Буквы могут повторяться. Сколько таких слов может составить Света? Можно ли решить данное задание вручную(не программированием)? Долго пытался решить вручную, не получилось( Может есть какая-нибудь формула? Помогите пожалуйста(((
|
|
|
Ответов - 6
[только новые]
|
|
|
| Администратор
|
Сообщение: 3594
|
|
Отправлено: 24.06.22 10:08. Заголовок: Viacheslav пишет: Мо..
Viacheslav пишет: цитата: | Можно ли решить данное задание вручную(не программированием)? |
|
Можно. Но это значительно сложнее, чем программой. Поскольку буква Ц встречается ровно 1 раз, она может стоять на одной из 6 позиций. Поэтому нужно найти количество пятибуквенных слов, в которых буква О встречается 0, 1 и 2 раза и полученный результат умножить на 6.
|
|
|
|
Отправлено: 14.02.23 15:54. Заголовок: Я не знаю, почему в ..
Я не знаю, почему в ответе получается странное число 17664, но у меня в ответе получилось 720. Решал кодом. k = 0 for x1 in 'СОЛНЦЕ': for x2 in 'СОЛНЦЕ': for x3 in 'СОЛНЦЕ': for x4 in 'СОЛНЦЕ': for x5 in 'СОЛНЦЕ': for x6 in 'СОЛНЦЕ': s = x1 + x2 + x3 + x4 + x5 + x6 if s.count(x1) == 1 and s.count(x2) == 1 and s.count(x3) == 1 and s.count(x4) == 1 and s.count( x5) == 1 and s.count(x6) == 1: if s.count('Ц') == 1 and s.count('О') <= 2: k += 1 print(k) Врать не буду, нашел код в интернете, получалось решать несколько таких задач этим кодом, но тут не знаю..
|
|
|
|
Отправлено: 21.02.23 05:05. Заголовок: ЕгорКуренеов пишет: ..
ЕгорКуренеов пишет: цитата: | Я не знаю, почему в ответе получается странное число 17664, но у меня в ответе получилось 720. Решал кодом. |
| если твой код немного подправить, например так как ниже, то получится тот самый странный ответ 17664 - кстати, он и есть правильный k = 0 for x1 in 'СОЛНЦЕ': for x2 in 'СОЛНЦЕ': for x3 in 'СОЛНЦЕ': for x4 in 'СОЛНЦЕ': for x5 in 'СОЛНЦЕ': for x6 in 'СОЛНЦЕ': s = x1 + x2 + x3 + x4 + x5 + x6 if s.count('Ц') == 1 and s.count('О') <= 2: k += 1 print(k)
|
|
|
|
Отправлено: 21.02.23 05:02. Заголовок: В архиве 8solve под ..
В архиве 8solve под именем 8-216.ru нашел такой файл: from itertools import product words = [w for w in product("СОЛНЦЕ",repeat=2) if w.count('О') <= 2 and w.count('Ц') == 1] print( len(words) ) выдает точно очень странный ответ - 10
|
|
|
|
Отправлено: 21.02.23 05:08. Заголовок: s11kai пишет: from ..
s11kai пишет: цитата: | from itertools import product words = [w for w in product("СОЛНЦЕ",repeat=2) if w.count('О') <= 2 and w.count('Ц') == 1] print( len(words) ) |
| Но стоит заменить 2 на 6 и этот странный код выдаст правильный результат from itertools import product words = [w for w in product("СОЛНЦЕ",repeat=6) if w.count('О') <= 2 and w.count('Ц') == 1] print( len(words) )
|
|
|
|
Отправлено: 21.02.23 05:16. Заголовок: А можно и так: from..
А можно и так: from itertools import * s = 'СОЛНЦЕ' k = 0 for i in product(s, repeat=6): s = ''.join(i) if s.count('О') <= 2 and s.count('Ц') == 1: k += 1 print(k) И понятно и не длинно!
|
|
|
|