авторизоваться в проекте
Для того чтобы попасть в команду Московской Биржи, тебе предстоит выполнить тестовое задание, о котором ты узнаешь из текста ниже. Прежде чем приступать к его выполнению, запомни простые рекомендации.
Участники, чье решение будет максимально соответствовать условиям,
пройдут собеседование с наставниками и станут частью команды
биржевых разработчиков! Итак, удачи! Стартуем:
1) Файл src.txt - содержит текст, который подвергнут шифрованию. Задание содержит пример зашифрованного текста на английском (использована кириллица в качестве алфавита замены) Пример.txt. Шифрованию подвергаются только символы исходного алфавита (знаки препинания и иные символы остаются без изменения).
2) Язык оригинального текста до шифрования (входной параметр командной строки «–l») {en, es, fr};
Примечание:
1) путь к файлу src.txt должен приниматься в параметрах командной строки («-i»);
2) путь к файлу с результатом обработки out.txt должен приниматься в параметрах командной строки («-o»);
3) Языки: en – английский, es – испанский, fr –французский;
1) Расшифровать предоставляемый зашифрованный файл, либо скомпрометировать максимально возможное количество символов исходного алфавита. При этом, необходимо реализовать алгоритм, который будет сохранять работоспособность в том числе и на коротких (3-4 слова) текстах (не рекомендуется использовать метод частотного анализа!).
2) Снабдить приложение тестовым шифртекстом (см. описание ниже по тексту – каталог test) и скриптом test.bat(sh), который позволит запустить и проверить работоспособность приложения «из коробки».
1) Приложение (скрипт) должно принимать на вход 3 параметра – язык, путь к файлу src.txt, путь к создаваемому файлу out.txt (например: «run –l en –p “С:\test\src.txt” –o “С:\test\out.txt”» или «run –l es –i “./src.txt –o ./out.txt» ).
2) Выполненная работа должна содержать архив с каталогами bin, src, sdk и файлами run.bat (или run.sh для Linux) и install.bat (или install.sh для Linux).
3) Архив должен содержать ваше резюме отдельным файлом.
Каталоги содержат:
• src – исходный код приложения
• bin - запускаемый ресурс (целевая ОС - windows 7 (x64) или ubuntu-14.04.3 (x64)) и все необходимые для запуска библиотеки, словари…
• sdk – все необходимые ресурсы для установки на целевой ОС (либо скрипты для скачивания из Internet)
• test – каталог, который содержит тестовый зашифрованный текст, на котором отлаживал работу приложения разработчик (который позволяет проверить работу приложения «из коробки»)
Скрипты:
• run – скрипт запуска приложения (скрипт принимает три параметра: см. П.1)
• install – скрипт дополнительной настройки окружения (скрипт настраивает окружение; при необходимости устанавливает библиотеки из Internet или каталога sdk)
• test – скрипт, который позволяет запустить и проверить работоспособность приложения «из коробки» (при этом используется зашифрованный текст, сгенерированный самим разработчиком из каталога «test»)
В результате работы test (обработки src.txt) должен быть создан файл (out.txt), который содержит список скомпрометированных символов (в фиг. скобках) и сам частично или полностью расшифрованный текст. Если полностью расшифровать файл программа не может, то она должна оставить на месте нерасшифрованного символа символ шифртекста.
Например, если в качестве исходного текста (src.txt) будет передан отрывок из примера:
шувои эаы уытфвзы, йпш збо бъъчй б
которому соответствует открытый текст:
using the service, you can apply a
то out.txt должен содержать расшифровку в следующем виде:
SEQ {U,S,G,T,P,V,Y,A}:
USвоG Tаы SытVвзы, Yпш зAо APPчY A
Т.е. символы исходного текста необходимо выводить в верхнем регистре, а зашифрованного в нижнем.
1) количество расшифрованных символов
2) скорость работы приложения;
1) Алгоритм расшифровки должен использовать словарь исходного языка. Словарь должен учитывать падежи, времена, спряжения и иные вариации слов исходного алфавита.
2) Количество символов, скомпрометированных на предоставляемом зашифрованном тексте (могут предоставляться тексты различной величины И СОДЕРЖАНИЯ), будет сильно зависеть от