Приветствия | Что это такое - Euphoria? | Новости | Список рассылки почты | Получение пакета Euphoria PD | Новейшие поступления от пользователей Архив файлов | Другие Web-страницы по Euphoria | Регистрация На-линии! | RDS - Отдел разработки программ
 
Конкурс программистов

Приз $100!
 
1 марта 2002 г.: Rapid Deployment Software объявляет о первом Официальном конкурсе Euphoria-программистов. Благодаря анонимному жертвователю, у нас появился призовой фонд в размере $100 U.S. звонкой монетой - деньгами МикроЭкономики Euphoria. Эта сумма предназначается победителям. Чтобы сделать участие в конкурсе доступным для программистов, имеющих различные весовые категории, в действительности назначены три отдельных конкурса с различными призами. Легкий конкурс располагает призом в $20. Средний - призом в $30, и тяжелый - призом в $50. Имеется и специальный дополнительный приз для победителя в каждой из весовых категорий, который составит $5, если его/ее программа будет правильно исполняться на всех платформах (WIN32, DOS32, Linux) без каких-либо изменений. Конкурсанты могут принимать участие только в одном из трех конкурсов, условия которых изложены ниже.
 

 
Конкурс #1 (Легкий, $20)
 
Напишите программу Euphoria, которая читает со стандартного входа специальную строку-ключ, содержащую 26 произвольно перемешанных букв алфавита, например,
TUVXWYZABDECFHIJKGLMOPNQSR

Эта строка означает, что ваша программа должна преобразовать все 'A' в 'T', все 'B' в 'U', все 'C' в 'V' и т.д.

Напишите обратную строку-ключ для стандартного выхода. Затем читайте следующие строки английского текста со стандартного входа, преобразуйте буквы в соответствии со строкой-ключом и выводите их на стандартный выход.

В качестве теста, вы должны будете уметь читать свой выход и получать оригинальный файл с оригинальной строкой-ключом в начале файла.

Примечание: Вы должны сохранить верхний/нижний регистры в английском тексте.

Кроме того, требуется подсчет числа выпадений каждой из букв во входном файле. Должен создаваться специальный файл с именем "letters.txt", в котором содержится список из 26 букв и их количеств, отсортированный по убыванию количества букв, т.е.
E 63
T 52
и т.д.

Подсчет для (скажем) E должен быть суммарным для 'E' и для 'e'.

Путем обработки достаточно больших файлов с английским текстом вы должны будете уметь получать статистические данные о частоте букв, которые могут стать некоторым основанием для расшифровки английского текста (тяжелая проблема ниже). Например, в английском тексте буква 'E' обычно встечается чаще других.

Правильность, затем скорость, определят победителя.

 
 
Конкурс #2 (Средний, $30)
 
Прочитайте список из 50.000 английских слов и разместите их в памяти. Вы можете получить этот список в Архиве файлов, это тестер правописания Джанко.

Напишите библиотечную функцию, которая будет выдавать ряд, содержащий все слова из словаря, соответствующие заданному шаблону. То есть, задавая в качестве аргумента для вашей функции {1,1,2,3,4}, вы должны получать ряд, содержащий все слова, состоящие из 5 букв, где первые две буквы одинаковые, а следующие 3 - разные. Пользователь также должен быть в состоянии задавать определенные буквы, т.е. {'E', 1, 2, 3, 1, 3} должно давать все 6-ти буквенные слова, начинающиеся с 'E' и соответствующие заданному шаблону. Имейте в виду, в этом случае ни 1, ни 2, ни 3 не могут быть 'E'.

Правильность, затем скорость, определят победителя.

Конкурс #3 (Тяжелый, $50)
 
Напишите программу, которая пытается расшифровать текстовый файл, зашифрованный с использованием простого алгоритма один-в-один (каждая буква алфавита заменяется другой буквой).

Используйте статистически-известные частоты букв и слов в английском языке. Сверяйте слова с шаблонами, выбираемыми из словаря английских слов, применяйте любой другой алгоритм, который вы можете придумать, чтобы расшифровать входной текст. Ваша программа может оценивать прогресс в своей собственной работе по числу расшифрованных слов, которые уже удалось найти и в словаре.

Выиграет та программа, которая позволит получить максимальное число правильно расшифрованных слов на некоторых пробных английских текстах, задаваемых RDS. Максимальное работное время не должно превышать 5 минут (на машине с Pentium 350 Mhz).

Имеется несколько эвристических (по случаю) методов, которые могут помочь. Например, отсеивание однобуквенных слов, 'I' или 'a', очень частых слов вроде "the" и т.д. Вы можете, вероятно, выиграть этот конкурс, вооружившись словарем на 50000 слов, а также вспомнив тот английский язык, который проходили в школе.

Несколько правил:
 
  • Представленные программы будут проверяться с интерпретатором Euphoria 2.3.
  • Представляя свою программу, вы согласны, что мы (RDS) можем выложить эту программу на нашем Web-узле. Каждому будет позволено использовать вашу программу для любых целей при условии общепринятых ссылок на вас как на ее автора.
  • Вы можете обсуждать правила конкурса и алгоритмы, которые могли бы быть полезными, в списке почтовой рассылки Euphoria, но не должны посылать код для решения любых проблем. Пошлите вашу программу по адресу rds@RapidEuphoria.com, предпочтительно в форме файла .zip, чтобы избежать любых проблем с возвратом каретки и табуляцией.
  • Конкурс завершается 31 марта 2002 г. Победители будут объявлены без проволочек.
  • Дополнительные правила и разъяснения могут быть введены в любое время до даты завершения конкурса.
 
 
Этот документ почти повторяет на русском языке оригинальную страницу, поддерживаемую
Робертом Крейгом и Джанко К.Миура
(Rapid Deployment Software - Программы Быстрого Развертывания).

Перевод: И.Н.Качан