icfp programming contest 2010
Сыграли с
brohm-ом в ICFP Programming Contest, как обычно.
Команда наша называлась nbu.
brohm первые сутки участвовал не в
полную силу, так как был занят другими делами; начиная со вторых пилили уже
полноценно вдвоём. Ни с кем не советовались, на irc отсутствовали, etc.
Описание задачи здесь, традиционное
описание и отчёт от
_adept_ здесь,
их команда называлась Futamura Rejection.
день 1
2 часа : ТЗ прочитано, написана первая пустая фабрика
4 часа : сгенерены все фабрики размера 1 и 2, получен их выход
6 часов: солвер для функций гейтов, и, как результат, таблицы функций
8 часов: парсер фабрик
10 часов: интерпретатор фабрик
11 часов: реальный input sequence
22 часа : сгенерён ключ, первый score
24 часа : сгенерено первое горючее, score пошёл в рост
день 2
6 часов: webcrawler для вытаскивания чужих машин
14 часов: формат тернарных чисел, частично остальные тернарные форматы
день 3
1 час : горючее для 2 .. 6-баковых машин, score снова пошёл расти
7 часов: полный парсер для тернарного формата машин
10 часов: полный парсер для тернарного формата горючего
11 часов: быстрый интерпретатор фабрик на C
14 часов: быстрый брут-форсер для фабрик
16 часов: сериалайзер машин и топлив в тернарный формат
18 часов: нагенерённые топлива поставлены в очередь автосабмиттера
21 час : генератор пар машина-топливо, первые десятки машин ушли на
сервер
результаты: 40-е место
score: 506.417 others' cars solved: 954 cars submitted: 72
Languages: Ruby, Perl, C; VCS: git.
no subject
Ты результатом доволен? (судя по описанию процесс был захватывающим)
А сколько всего мест?
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Разумеется, на следующий день после окончания я от нечего делать написал на ruby билдер фабрик, который легко генерит фабрики для килобайтных горючих за несколько минут, на C это будут единицы секунд (после драки-то святое дело кулаками помахать).
no subject
no subject
Соответственно, чтобы построить фабрику, генерирующую произвольный выход длиной N, достаточно 1) взять фабрику из этих трёх, генерирующую на первом шаге первый символ из N, 2) найти вход длиной N-1 для этой фабрики, такой, что на выходе будут правильные N-1 следующих символов, и 3) повторить шаги 1-3 для этой новой последовательности длиной N-1.
no subject