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

Ми приносимо найглибші вибачення за довгу затримку при підготовці цього поста. Сьогодні ми публікуємо аналіз самонавчаючих рішень, надісланих на конкурс з програмування, і вручаємо два спеціальні призи.

Англійська версія цього запису на GitHub.

Отже, 9 з надісланих рішень виявилися самообучающимися. Ідея самонавчання така: оскільки всі слова вибираються з кінцевого словника, а не-слова генеруються випадково, то всяка рядок, яка була представлена досліджуваної програмі повторно, з більшою ймовірністю опиниться словом, ніж не-словом. При досить тривалому тестуванні більшість слів зі словника встигнуть повторитися, тоді як для не-слів випадкові повторення зустрічаються набагато рідше.

Щоб спостерігати поведінку самонавчаючих рішень, ми протестували їх на 1 000 000 блоків. Тестувати на такій кількості блоків всі рішення було б нереально, але ці дев'ять виявилися досить швидкими.

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

image

Читати далі →

Цікава задачка «Нещасливий квиток» (Elixir edition)

Я не зміг пройти повз поста про нещасливе квитку. Це одна з моїх улюблених завдань. До того ж, комбінації в рішенні були запрограмовані вручну, а було б цікаво перебрати всі варіанти алгоритмічно. Мені стало цікаво, а як би я вирішив цю задачу, використовуючи Elixir.

Якщо вам цікаво, як такі завдання вирішуються в Elixir, або навіть встановити і повторити, то я прошу вас під кат.



Читати далі →

Цікава задачка «Нещасливий квиток»

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

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

Читати далі →

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

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

По випадковості, всі троє призерів воліли брати участь під псевдонімами. Мені здається, з такими результатами їм нема чого соромитися. Якщо ви хочете представитися в коментарях, ласкаво просимо!

Отже, призові місця зайняли:
  1. Antelle — 83.67% правильних відповідей. Приз 3000 USD.
  2. SHB — 83.11% правильних відповідей. Приз 2000 USD.
  3. chianti — 83.00% правильних відповідей. Приз 1000 USD.
Нам потрібно ще трохи часу, щоб визначитися з тим, хто отримає спеціальні призи. Щонайменше один з них буде присуджено автору кращого з самонавчаючих рішень, про що буде написаний окремий пост.

Повну таблицю результатів дивіться в англійській версії на GitHub.
Джерело: Хабрахабр

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

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

Протестовано 312 рішень, з них 50 впало або зависло, ще 3 виявилися занадто повільними, щоб пройти всі тести. З решти 259 рішень 12 з різних причин були оголошені «поза конкурсом»: рішення не працювали без поправки типу файлу даних (автори забули галочку «gzip») або були надіслані співробітниками Hola.

Нинішні результати попередні. Ми сподіваємося, що не допустили помилок при підведенні підсумків, і тоді 20 червня 2016 ці результати стануть остаточними. Тоді ж замість ідентифікаторів рішень будуть опубліковані імена або псевдоніми їх авторів.

Рішення про переможця конкурсу показало результат у 83.67% правильних відповідей. Повні списки рішень з результатами тестування знаходяться в англійській версії поста на GitHub.

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

Читати далі →

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

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

Англійська версія цього поста розміщена на GitHub.

Протестувати 312 рішень

Велике спасибі всім учасникам! Ми отримали 603 рішення від 312 учасників. Оскільки ми приймаємо до тестування саме останнє з надісланих у термін рішень, то треба протестувати 312 рішень. Це був несподіваний результат. Сподіваюся, це трохи пояснює, чому це займає так багато часу.

Читати далі →

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

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

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

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

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

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


Читати далі →

Конкурс з програмування на PHP: Поштові фільтри

Компанія Hola знову оголошує конкурс з програмування на PHP з солідним призовим фондом:

  1. Перше місце: 1500 USD
  2. Друге місце: 1000 USD
  3. Третє місце: 500 USD
  4. Можливо, ми вирішимо відзначити чиєсь надзвичайно оригінальне рішення спеціальним призом в 350 USD.
  5. Якщо Ви відправите комусь посилання на цей конкурс, поставивши наша адреса CC, і ця людина займе призове місце, Ви отримаєте таку ж суму, як і він.
Ми шукаємо талановитих програмістів, тому автори цікавих рішень будуть запрошені на співбесіди.



Правила

Деякі з тих, хто пам'ятає наші попередні конкурси, були незадоволені тим, що умови завдань були сформульовані нечітко, і від учасника вимагалося «вгадати», що ми мали на увазі. На цей раз умова сформульована гранично однозначно, а в розпорядженні учасників — еталонна реалізація рішення. Переможе той, чий код буде найшвидшим за умови проходження тестів на коректність.

Умови конкурсу на англійській мові розміщені на нашому сайті. Нижче — переклад на російську мову.


Читати далі →

Задача про ста коробках і порятунку ув'язнених – фінальний акорд

Вірний спосіб увійти в історію – відповісти, хто перемагає в шахах при ідеальній грі обох сторін (білі, чорні або дружба). Потрібні гросмейстери і суперкомп'ютери, щоб дізнатися істину? Чи достатньо олівця, паперу і красивої ідеї?

Математика вселяє надію, адже можна довести існування об'єкта, не пред'являючи його, знайти відповідь, не пояснюючи глибинні причини, чому він саме такий.

У задачі про ув'язнених і сто коробок схожа ситуація. Колосальна кількість можливих стратегій гри, одна з яких інтуїтивно здалася нам найкращою. Але можна обґрунтувати її оптимальність, не занурюючись в місиво варіантів?

У самому пості про завдання такого питання не поставлено. Однак вже в першому коментарі до нього користувач mayorovp піднімає тему, а трохи нижче avfonarev повідомляє про чудову статті, розкриває таємницю.

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

Читати далі →

Ігри разумов, або Як ми мірялися інтелектом

На початку нового року хочеться ще раз згадати те позитивне, що приніс старий рік. Ось, наприклад, пара цікавих фактів:
  1. У ході дослідницької програми ВВС було встановлено, що «якщо дивитися програми, в яких перевіряють ерудицію учасників, грати в інтелектуальні настільні ігри і приймати душ з закритими очима, то вже через тиждень можна порозумнішати приблизно на 40%».
  2. Коли для однієї з ТВ-вікторин звичайних перехожих попросили назвати найбільш розумну професію, в списку опинилися: швець, кравець, вчитель, вчений, професор, двірник (так, мене теж здивувало), лікар і — ось воно, народне визнання! — програміст. Ну і ще парочка стереотипів: хто працює в ІТ-компанії? Ясна річ, програмісти (є ще варіант «комп'ютерники»). А що вони роблять у вільний час? Грають у комп'ютерні ігри, звичайно!
Руйнувати стереотипи — чудове заняття. Щодо самої розумної професії, втім, цього можна й не робити, а навпаки — спробувати позмагатися з іншими інтелектуалами, та не в комп'ютерній грі, а лицем до лиця, так би мовити, голова до голови. Раптом вдасться перемогти вчених професорів або навіть самих двірників? Ну а кому не хочеться отримати звання найрозумнішого серед колег? Порозумнішати — нехай навіть не на 40% (не кожен готовий приймати душ з закритими очима), а хоча б на 10-15 — теж непогано, хоч і не дуже я вірю цим британським вченим… загалом, мотиваторів для участі в битвах інтелектів виявилося предостатньо, і Veeam Software вирішила організувати команду знавців «Що-Де-Коли».

Під катом — розповідь про те, що з цього вийшло.

image

Читати далі →