Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Конкурс программирования ICFP - это международный конкурс программирования, проводимый ежегодно в июне или июле с 1998 года, результаты которого объявляются на Международной конференции по функциональному программированию. Команды могут быть любого размера и использовать любой язык программирования. Также входный взнос не взимается. Участники имеют 72 часа, чтобы заполнить и отправить заявку через Интернет. Часто также существует 24-часовое разделение на молнии. Победители сохраняют за собой "право хвастаться", утверждая, что их язык является "избранным инструментом программирования для разведчиков-хакеров". Таким образом, одна из целей конкурса - продемонстрировать возможности любимых языков и инструментов программирования участников. Предыдущие победители первой премии использовали Haskell, OCaml, C++, Cilk, Java, F# и Rust. На конкурсы обычно подается около 300 работ.
The ICFP Programming Contest is an international programming competition held annually around June or July since 1998, with results announced at the International Conference on Functional Programming. Teams may be of any size and any programming language(s) may be used. There is also no entry fee. Participants have 72 hours to complete and submit their entry over the Internet. There is often also a 24 hour lightning division. The winners reserve "bragging rights" to claim that their language is "the programming tool of choice for discriminating hackers". As such, one of the competition's goals is to showcase the capabilities of the contestants' favorite programming languages and tools. Previous first prize winners have used Haskell, OCaml, C++, Cilk, Java, F#, and Rust. The contests usually have around 300 submitted entries.
Прошлые задачи
Год Описание организатора 1998 Université de Montréal и Массачусетский технологический институт Напишите программу, которая играет в пусс, странный вариант tic tac toe. Программа участников была включена в турнир, чтобы определить программу первого и второго места. 1999 Гарвардский университет Размер оптимизировать высказывания по делу (задача конкурса говорила о текстовых приключенческих играх, но на самом деле задача заключалась в оптимизации размера описания такой игры). 2000 Корнеллский университет Реализовать трассировщик лучей с использованием постскрипта, как синтаксис. 2001 INRIA Rocquencourt Size оптимизирует язык разметки HTML, удаляя ненужные пробелы и теги и так далее. 2002 ОГИ Школа науки и техники Реализуйте роботов, играющих в игру Сокобан, как один против другого. 2003 Чалмерсский университет Реализуйте роботов, управляющих автомобилем как можно быстрее по различным гоночным трассам. 2004 Университет Пенсильвании Разработать колонию муравьев, которая будет приносить большинство частиц пищи обратно в свое муравейник, одновременно отгоняя муравьев другого вида. В конкурсе было бы представлено описание муравья на государственной машине: в принципе, записи могли быть написаны вручную. Позже эта задача была адаптирована в игру "Морские войны", стратегическую и программирующую игру, где каждый участник - вид муравьев. Затем участники программируют на языке, называемом Antomata, конечную машину, которая будет функционировать как мозг каждого муравья. Затем мозг муравья управляет муравьем, чтобы он находил и собирал пищу, которую приносил домой в муравейник, чтобы отбиваться от нападавших или создавать следы феромонов. 2005 Группа PLT Реализует "ботов" для игры "Полицейские и грабители": участники должны написать программу управления, которая направляет Бота-грабителя через тихий городской район в миссии ограбить каждый банк, не попався, и программу управления для Бота-полицейского, предназначенную для его остановки. 2006 Carnegie Mellon University Внедрить виртуальную машину, которая запускает операционную систему (называемую UMIX), предоставленную судьями, и взломать ее с использованием новых языков программирования с нетрадиционным синтаксисом и семантикой, таких как 2D и версия BASIC с использованием римских цифр. Многие головоломки были крошечными версиями или пародиями на предыдущие соревнования. 2007 Утрехтский университет Реализовать двухступенчатую виртуальную машину, которая выполняет ДНК-подобную строку для получения изображения. Затем, получив входную строку для этой машины, найдите префикс, который при добавлении к этой строке дает изображение, максимально близкое к данному целевому изображению. 2008 Государственный университет Портленда и Чикагский университет предоставляют систему управления марсоходом, которая будет направлять его к домашней базе, избегая препятствий и врагов. 2009 Университет Канзаса Контроль спутника для перемещения между указанными орбитами и встречи с другими спутниками. 2010 Лейпцигский университет прикладных наук, Германия Международное производство автомобилей и топлива. 2011 Университет Тохоку, Япония Программа компьютера с 256 "слотами", чтобы опередить своего противника с точки зрения слотов, оставшихся в конце матча. В заявки входят исполняемые файлы, которые участвуют в двухфазном турнире. 2012 Университет Сент-Эндрюса, Шотландия Программа ИИ для игры типа Боулдер-Дэш. 2013 Microsoft Research Guess реализация функции черного ящика, реализованной на простом функциональном языке посредством запроса веб-сервиса. 2014 Оксфордский университет и Well Typed LLP Пишите программы ИИ для игры типа pacman, в SECD машинные инструкции для pacman и 8-битные инструкции по сборке машин для четырех призраков. 2015 Галуа Напишите ИИ для Tetris, как игра на шестиугольной сетке, которая встраивает секретные фразы в последовательность движений. 2016 Университет электрокоммуникаций Напишите ИИ для решения абстрактных оригами.2017 Университет ЭдинбургаНапишите ИИ для игры, в которой игроки в свою очередь претендуют на части маршрута на карте, и тот, у кого лучшее покрытие, побеждает. Есть также три расширения для основного игрового режима, любое количество которых может быть включено на карте. 2018 Рочестерский технологический институт Создать следы наноботов для построения, разрушения и реконструкции целевых 3D-объектов при минимизации затрат энергии.2019Yale NUS College и Национальный университет СингапураРабочие обертки против Bit Rot.2020SKB KonturСоздайте вирт�...
Year Organiser Description 1998 Université de Montréal and Massachusetts Institute of Technology Write a program that plays pousse, an odd variant of tic tac toe. Contestant programs were entered into a tournament to determine the first and second place program. 1999 Harvard University Size optimize case statements (the contest task spoke about text based adventure games, but in fact the task was to size optimize the description of such a game). 2000 Cornell University Implement a ray tracer using a Postscript like syntax. 2001 INRIA Rocquencourt Size optimize an HTML like markup language by removing unnecessary whitespace and tags, and so on. 2002 OGI School of Science and Engineering Implement robots playing a Sokoban like game one against each other. 2003 Chalmers University Implement robots driving a car as fast as possible through different racing tracks. 2004 University of Pennsylvania Design an ant colony that will bring the most food particles back to its anthill, while fending off ants of another species. The contest entry would output a state machine description of the ant: in principle, entries could have been written by hand. Later the task was adapted into Ant Wars, a strategy and programming game where each participant is a species of ant. The participants then, in a language called Antomata, program a finite state machine to function as the brain of each ant. The ant brain then controls the ant to find and collect food to bring to the home ant hill, to fend off attackers or make trails of pheromones. 2005 PLT group Implement "bots" for a "Cops & Robbers" game: contestants have to write the control program that guides a Robber Bot through a quiet urban neighborhood on a mission to rob every bank without getting caught, and the control program for a Cop Bot dedicated to stopping it. 2006 Carnegie Mellon University Implement a virtual machine that runs an operating system (called UMIX) provided by the judges, and crack it using new programming languages with unconventional syntax and semantics, such as 2D and a version of BASIC using Roman numerals. Many puzzles were tiny versions or parodies of previous contests. 2007 Utrecht University Implement a 2 stage virtual machine that executes a DNA like string to produce an image. Then, given an input string for this machine, find a prefix that when added to this string yields an image as close as possible to the given target image. 2008 Portland State University and the University of Chicago Provide a Mars rover control system that will guide it to a home base while avoiding obstacles and enemies. 2009 University of Kansas Control a satellite to move between specified orbits and rendezvous with other satellites. 2010 Leipzig University of Applied Science, Germany International Car and Fuel Production. 2011 Tohoku University, Japan Program a computer with 256 "slots" to outlast its opponent in terms of slots remaining at the end of the match. Submissions include executables that are entered into a two phase tournament. 2012 University of St Andrews, Scotland Program an AI for a Boulder Dash like game. 2013 Microsoft Research Guess the implementation of a blackbox function implemented in a simple functional language through querying a web service. 2014 University of Oxford and Well Typed LLP Write AI programs for a pacman like game, in SECD machine instruction for pacman and 8 bit machine assembly instructions for four ghosts. 2015 Galois Write an AI for Tetris like game on a hexagon grid field that embeds secret phrases in the move sequence. 2016 University of Electro Communications Write an AI to solve abstract origami.2017University of EdinburghWrite an AI for a game where players in turn claim route parts on the map and the one with the best coverage wins. There are also three extensions to the main game mode, any number of which can be enabled on a map. 2018 Rochester Institute of Technology Generate nanobot traces to construct, destruct, and reconstruct target 3D objects while minimizing energy used.2019Yale NUS College and National University of SingaporeWorker Wrappers against Bit Rot.2020SKB KonturBuild virtual machine by the alien specification, run alien provided game server on that VM, explore the game (2D space battle on the planet orbit with Chebyshev distance, with accelerate, shoot, split and detonate commands), reverse engineer game protocol and create bot to play this game.2021Alex Lang and Jasper Van der JeugtManipulate a figure similar to a mechanical linkage to fit through a hole in the wall.2022Alperen KelesReconfigure a prefilled canvas into a painting.