Практика «Антиплагиат» на языке C#

Отменен
Заказ
3217220
Раздел
Программирование
Предмет
Основы программирования
Антиплагиат
Не указан
Срок сдачи
31 Мая 2020 в 21:55
Цена
500 ₽
Блокировка
10 дней
Размещен
14 Мая 2020 в 17:52
Просмотров
482
Описание работы
Практика «Антиплагиат»

ИТ-компания К. приглашает студентов на летнюю стажировку. Чтобы попасть на стажировку, претенденты решают тестовое задание — задачу на программирование вроде тех, что есть в этом курсе, только сложнее.

Из года в год претенденты присылают несколько сотен решений. Можно ли как-то автоматически найти среди них «списанные» решения, то есть такие, которые слишком сильно похожи друг на друга?

Оказывается расстояние Левенштейна можно использовать для того, чтобы сравнивать листинги программ (или вообще любые документы) друг с другом и находить самые похожие пары. Этим вам и предстоит заняться в данной задаче.

Скачайте проект Antiplagiarism.

В этой задаче вам необходимо реализовать класс LevenshteinCalculator, который получает на вход список документов и возвращает список попарных сравнений каждого документа с каждым другим.

Мы хотим, чтобы разница в пробелах, пустых строках или небольшом переименовании переменных не сбивала наш алгоритм. Поэтому вам нужно реализовать модифицированный алгоритм Левенштейна:

  1. Он должен анализировать не последовательности символов, а последовательности токенов — лексических единиц. Например, в коде force = mass * acceleration 5 токенов: force, =, mass, *, acceleration. Код разбиения на токены уже реализован и на вход вашему алгоритму поступает список токенов. Один документ представляется типом DocumentTokens (который объявлен, как синоним List).
  2. Если два токена различаются, то будем учитывать ещё степень различия. Стоимость замены одного токена на другой в алгоритме Левенштейна будем вычислять с помощью формулы коэффициента Жаккара. Она тоже реализована за вас в методе GetTokenDistance класса TokenDistanceCalculator. Стоимость удаления/добавления токена равна единице, как и в оригинальном алгоритме.

Корректность работы проверяйте с помощью имеющихся в проекте модульных тестов.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир