Top.Mail.Ru
Ответы

Нормальный алгоритм Маркова

Помогите составить нормальный алгоритм Маркова (НАМ):

Входное слово НАМ представляет собой последовательность символов в алфавите {d,e,f}. Если слово нечетной длины, найти центральный символ и заменить его на символ «*». Если слово четной длины, вставить символ «*» в середину слова. Например, ddeed => dd*ed, fedd => fe*dd.

По дате
По рейтингу
Аватар пользователя
Высший разум
3мес

Получилось вот такое извращение.

1234567891011121314151617181920212223
 1d2 -> * .
1e2 -> * .
1f2 -> * .
12 -> * .

0d -> d0
0e -> e0
0f -> f0
0 -> 2

3d2 -> 2d
3e2 -> 2e
3f2 -> 2f

3d -> d3
3e -> e3
3f -> f3

1d -> d13
1e -> e13
1f -> f13

-> 10 

Точка - остановить НАМ. В разных эмуляторах остановка обозначается по-разному. Например, в https://cmcmsu.info/1course/alg.schema.nam.htm вместо:

1234
 1d2 -> * .
1e2 -> * .
1f2 -> * .
12 -> * . 

будет:

1234
 1d2 => *
1e2 => *
1f2 => *
12 => * 
Аватар пользователя
Мудрец
3мес

найти длину слова, если нечетная - заменить центральный символ на *, если четная - вставить * посередине, завершить замену