Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Нарушитель
151 / 146 / 9
Регистрация: 28.07.2018
Сообщений: 840
1

Реализовать алгоритм Маркова

23.10.2019, 12:37. Просмотров 1098. Ответов 9
Метки нет (Все метки)

A= {a,b} //где алфавит - a, б;

Преобразование типа

ab -> ba //все подстроки ab заменить на подстроки ba, пока в слове не останется подстрок ab

слово для изменения abaabbab
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2019, 12:37
Ответы с готовыми решениями:

Построить алгоритм Маркова, который ищет НОД (Алгоритм Евклида)
Здравствуйте, ребята, выручайте. Весь инет перерыл, всю голову сломал, но не могу сделать. Суть в...

Алгоритм Маркова. Как завершить алгоритм?
Задание звучит так: На ленте записано выражение 2^n .Получить результат операции в двоичной СС. ...

Алгоритм Маркова
Здравствуйте! Подскажите пожалуйста... Задание: аннулировать слова вида x#x в алфавите {a,b}* ...

Алгоритм Маркова
Вот система, для неё нужно написать алгоритм маркова. Не могу разобраться.

9
38 / 70 / 11
Регистрация: 29.03.2019
Сообщений: 269
23.10.2019, 13:46 2
Это шутка?
Lisp
1
(string-replace "abaabbab" "ab" "ba")
1
Модератор
Эксперт Python
26788 / 14002 / 2679
Регистрация: 12.02.2012
Сообщений: 22,954
Записей в блоге: 2
23.10.2019, 14:21 3
Лучший ответ Сообщение было отмечено sodda как решение

Решение

zeroalef, точнее (HomeLisp):

Lisp
1
2
3
4
5
6
7
(defun ma (s)
  (if (zerop (strInd s "ab")) s (ma (strRep s "ab" "ba"))))
 
==> MA
 
(ma "abaabbab")
==> "bbbbaaaa"
2
Нарушитель
151 / 146 / 9
Регистрация: 28.07.2018
Сообщений: 840
23.10.2019, 14:50  [ТС] 4
Цитата Сообщение от zeroalef Посмотреть сообщение
(string-replace "abaabbab" "ab" "ba")
Это так не работает, потому что преобразования нужно проводит, пока не останется подстрок "ab"
0
38 / 70 / 11
Регистрация: 29.03.2019
Сообщений: 269
23.10.2019, 15:07 5
Цитата Сообщение от sodda Посмотреть сообщение
потому что преобразования нужно проводит, пока не останется подстрок "ab"
Значит не точная постановка задачи. Линк на "алгоритм Маркова" тоже не мешало бы прилепить для ясности
Lisp
1
2
3
4
5
(define (foo s old new)
  (let loop ((s s) (s2 (string-replace s old new)))
    (if (string-contains? s old)
        (loop s2 (string-replace s2 old new))
        s)))
1
Нарушитель
151 / 146 / 9
Регистрация: 28.07.2018
Сообщений: 840
23.10.2019, 15:14  [ТС] 6
zeroalef, у меня указано
Цитата Сообщение от sodda Посмотреть сообщение
пока в слове не останется подстрок ab
Catstail всё понял и сделал правильно.

zeroalef, давай чуть сложнее ab -> ba; a -> b
0
38 / 70 / 11
Регистрация: 29.03.2019
Сообщений: 269
23.10.2019, 15:18 7
Цитата Сообщение от sodda Посмотреть сообщение
Catstail всё понял и сделал правильно.
Очевидно он знает о чем идет речь. Я же -- нет. Где-то в закромах памяти может и помню что это относится к грамматикам, но настолько смутно, что даже не поверхностно.
Цитата Сообщение от sodda Посмотреть сообщение
давай чуть сложнее ab -> ba; a -> b
Не понимаю вас. Вы об этом?
Lisp
1
(foo (foo "abaabbab" "ab" "ba") "a" "b")
0
Нарушитель
151 / 146 / 9
Регистрация: 28.07.2018
Сообщений: 840
23.10.2019, 15:20  [ТС] 8
Цитата Сообщение от zeroalef Посмотреть сообщение
(foo (foo "abaabbab" "ab" "ba") "a" "b")
да, только в рамках одной функции)
0
38 / 70 / 11
Регистрация: 29.03.2019
Сообщений: 269
23.10.2019, 15:41 9
Lisp
1
2
3
4
5
6
7
8
9
10
11
(define (foo s . expression-patterns)
  (if (null? expression-patterns)
      s
      (let-values (((old new) (apply values (car expression-patterns))))
        (let loop ((s s) (s2 (string-replace s old new)))
          (if (string-contains? s old)
              (loop s2 (string-replace s2 old new))
              (apply foo s2 (rest expression-patterns)))))))
 
(foo "abaabbab" '("ab" "ba") '("a" "b") '("bb" "ab"))
;"abababab"
1
Нарушитель
151 / 146 / 9
Регистрация: 28.07.2018
Сообщений: 840
23.10.2019, 15:50  [ТС] 10
zeroalef,
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2019, 15:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Алгоритм Маркова
Ребят, помогите, пожалуйста, сделать это чертово задание. Дано: Алфавит {a,b,c} Из слова Р...

алгоритм Маркова
Пожалуйста, помогите с выполнением задания. Опишите алгорифм Маркова, в котором не более пяти...

Алгоритм Маркова
Здравствуйте! Подскажите, пожалуйста, как можно построить алгоритм Маркова для следующей задачи: ...

Алгоритм Маркова
Помогите, пожалуйста, с задачей. пыталась понять, прочитала много информации так полностью и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.