Конкурс з програмування на PHP: Класифікатор слів (додаток)

Спасибі всім, хто вже долучився або збирається брати участь у нашому конкурсі з програмування!

Ми вирішили опублікувати ряд важливих роз'яснень до правил, щоб допомогти учасникам уникнути типових помилок. Прикро було б дискваліфікувати цікаве рішення з чисто технічної помилки.

На численні прохання ми також публікуємо офіційний скрипт для тестування. З допомогою нього Ви можете самостійно перевірити, чи працює Ваша програма в умовах нашої тестової системи. Запустіть скрипт без аргументів, щоб дізнатися, як ним користуватися.

Для відправки робіт залишилася ще тиждень. Якщо цей пост допоміг Вам знайти помилку, ще є час виправити.

часті питання


  • Як же я зможу прочитати файл
    words.txt
    , якщо неможливо завантажити модуль
    fs
    ? А можна завантажити його з інтернету? Можна використовувати
    process.binding
    ?

    Ваша програма не буде мати доступу до файлу
    words.txt
    . В цьому і сенс. Якщо б можна було просто прочитати цей файл, задача була б тривіальною. Нічого не можна скачати, тому що для цього знадобилися б такі модулі, як
    http
    або
    net
    . Включити словник свого рішення теж не вийде через обмеження за розміром.
    Це означає, що написати рішення, завжди дає правильні відповіді, швидше за все, неможливо. Але можна написати програму, яка частіше вгадує правильно, що неправильно, і той, чия програма точніше вгадує, переможе.
  • В словнику є деякі слова з прописними літерами. Чи можуть вони попастися в тестах?
    Можуть, але вони будуть переведені в нижній регістр.
  • Що означає «64 Кіб»?
    64*1024 = 65536 байт.
  • Якщо мій файл даних стиснутий методом gzip, то повинен його розмір до або після стиснення укладатися в 64 Кіб разом з текстом програми?
    Враховується розмір після стиснення.
  • Що за дивний словник! Там повно якихось незрозумілих слів.
    Ми знаємо, що він дивний. Це найбільший словник англійської мови для перевірки правопису, в який входить велика кількість абревіатур, запозичень, рідкісних слів, діалектизмів і навіть неможливих словоформ. Тим не менш, ми вибрали саме цей словник, тому для даної задачі «англійське слово» — це те, яке зустрічається конкретно в цьому словнику.
  • Якого розміру набір «не-слів, що використовується в генераторі тестів?
    Генератор тестів не використовує будь-якого фіксованого набору «слів». Він генерує псевдовипадкові слова, схожі на англійські, безпосередньо при запиті за алгоритмом, який ми опублікуємо при підведенні підсумків конкурсу.
  • тестова система буде враховувати дублікати, тобто слова, що зустрічаються більш ніж в одному з блоків по 100 слів?
    Кожне входження буде враховуватися як окреме слово. Подивіться, як влаштований наш скрипт для тестування.
  • Що, якщо переможцю посилання на конкурс надіслали дві людини?
    Премію отримає той, хто прислав її першим.


Типові помилки

На жаль, в багатьох рішеннях, які ми отримали на сьогоднішній день, містяться схожі технічні помилки:
  • test
    та
    init
    не експортовані або експортовані неправильно. Недостатньо просто оголосити функції, їх треба експортувати з модуля. Якщо Ви не впевнені, що зробили це правильно, перевірте свою програму нашим тестовим скриптом.
  • Функція
    init
    працює зі своїм аргументом
    data
    з рядком тексту, тоді як в умови явно сказано, що це буде
    Buffer
    .
  • Програма використовує файл даних, але він не програми.
  • Файл даних упакований методом gzip, але відповідна опція в формі відправки не обрана.
  • Опція gzip у формі відправки обрана файл, але замість gzip являє собою zip-архів. Це не одне і те ж!
  • Програма намагається використовувати
    require
    або
    process.binding
    . Це заборонено правилами.


Удачі всім учасникам!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.