На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 06.11.22 21:49. Заголовок: задание 8 №5073 (248 в doc)


Здравствуйте, подскажите, пожалуйста решение задачи:

(№ 5073) (Н. Вольхин) Николай составляет слова из букв C, O, N, S, T. Каждый символ в последовательности может встречаться любое количество раз или не встречаться совсем. Слова должны удовлетворять следующим условиям:
1) не содержат двух одинаковых букв, стоящих рядом;
2) буква S не может быть первой и последней в слове;
3) буква S может находится только между двумя разными буквами.
Сколько различных 16-буквенных слов может составить Николай?

Не пойму по какому алгоритму её решать

Простым перебором не получается, так как очень большой список получается:

 
from itertools import *

l = set(map(''.join, product('CONST', repeat=16)))
count = 0
for x in l:
if 'CC' not in x and 'OO' not in x and 'NN' not in x and 'SS' not in x and 'TT' not in x\
and x[0] != 'S' and x[15] != 'S' and \
'CSC' not in x and 'OSO' not in x and 'NSN' not in x and 'TST' not in x:
count += 1

print(count)


Пытался сделать таким же способом, как здесь: https://youtu.be/btX4IOUjF08

 
from itertools import *
n = 10
for j in range(1, n):
l = set(map(''.join, product('CONST', repeat=j)))
count = 0
for x in l:
if 'CC' not in x and 'OO' not in x and 'NN' not in x and 'SS' not in x and 'TT' not in x\
and x[0] != 'S' and x[j - 1] != 'S' and \
'CSC' not in x and 'OSO' not in x and 'NSN' not in x and 'TST' not in x:
count += 1

print(count)


Вывод:
4
12
48
180
684
2592
9828
37260
141264

Отношение к предыдущему различное:
4 : 4.0
12 : 3.0
48 : 4.0
180 : 3.75
684 : 3.8
2592 : 3.789473684210526
9828 : 3.7916666666666665
37260 : 3.791208791208791
141264 : 3.791304347826087

В итоге закономерности не вижу

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]





Сообщение: 42
ссылка на сообщение  Отправлено: 11.11.22 11:34. Заголовок: Здесь получается зак..


Ролик на youtube это мой разбор задания.
Здесь получается закономерность сумма двух предыдущих значений умноженных на 3.

48 3
180 4
684 5
2592 6
9828 7
37260 8
141264 9
535572 10
2030508 11
7698240 12
29186244 13
110653452 14
419519088 15
1590517620 16

Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 11.11.22 18:12. Заголовок: аааааааа... вот так..


аааааааа... вот так оказывается, а ларчик просто открывался ;)

Спасибо большое!
(и за ролик на youtube тоже)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1062
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет