Skip to content

minimulin/fly-to-elephant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Из мухи слона

Использование

Перед использованием необходимо обновить автолоадер

composer dump-autoload

Затем запустить сам скрипт

./cook.php

Слова, для которых будет подбираться цепочка задаются в файле cook.php

Информация

Задание

Требуется на PHP написать программу, которая делает из "мухи" - "слона". Например:

муха -> мука -> рука -> ... -> слон 

Т.е., меняя за 1 шаг по 1 букве, нужно найти правильную последовательность словарных слов и распечатать все шаги.

Реализация

В качестве словаря используется SQLite база данных, которая содержит 92675 слов русского языка. Для формирования использовался словарь А. А. Зализняка, из которого были удалены слова с дефисами. Буквы е и ё различаются. Файл словаря был скачан отсюда
В реализации я решил использовать графы, т.к. по моему мнению они лучше всего подходят для решения подобных задач. В качестве поиска кратчайшей цепочки слов был реализован алгоритм волновой трассировки (волновой алгоритм, алгоритм Ли).
В процессе реализации активно использовались возможности ООП с расчётом на то, что каждый модуль может быть с лёгкостью заменён на другой (алгоритм поиска цепочки, метод реализации графов, логгер, работа с БД) либо безболезненно доработан.

P.S.

Данный алгоритм превратил муху в слона, используя следующую цепочку из 9 слов: муха -> мура -> кура -> кора -> корн -> коан -> клан -> клон -> слон

Ссылки

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages