Пређи на садржај

Такмичарско програмирање

С Википедије, слободне енциклопедије
Јандекс такмичење, 22. август , 2013.

Такмичарско програмирање је умни спорт који се у већини случајева одржава на интернету или у локалној мрежи, где такмичари покушавају да реше одређене задате проблеме из те области. Такмичари се такође називају спротским програмерима. Такмичарско програмирање је подржано и спонзорисано од стране великих софтверских компанија, а неке од њих су Гугл,[1][2] Фејсбук[3] и IBM.[4] Постоји велики број организатора који одржавају такмичења на редовној бази.

Такмичарско програмирање састоји се од великог броја задатака из логике као и из математике. Свако такмичење има од 3 до 10 различитих проблема у зависности од тога ког је типа такмичење као и од времена за које би оно требало да се заврши. Суди се по томе што се гледа колико проблема је одређени тим завршио и за које време су ти проблеми написани, али такође може бити и више фактора (величина програма, квалитет излаза).

Историја[уреди | уреди извор]

Једно од најстаријих такмичења у свету програмирања је ACM International Collegiate Programming Contest које је почело 1970. године и успело је да се прошири на 88 земаља широм света. Заинтересованост за такмичење порасла је невероватно од 2000. године, а разлог тога је велика промоција интернет технологија, као и проширење интернета.

Преглед[уреди | уреди извор]

Циљ такмичарског програмирања је да се напише изворни код од компјутерског програма који треба да реши одговарајући проблем. Велика већина проблема су из категорије математике и логике. Неке од типичних категорија из математике су: комбинаторика, теорија бројева, теорија графова, геометрија, анализа стрингова и структуре података. Такође постоје и такмичења која су везана за вештачку интелигенцију.

Процес решавања проблема на неким од ових такмичења се може поделити у две фазе - имплементирање одговарајућег ефикасног алгоритма и имплементирање истог у одговарајућем изабраном језику (у зависности да ли је тај језик подржан од стране такмичења). Ово су две фазе које су кључ у решавању проблема.

У већини такмичења, суђење је одрађено аутоматски од стране машина, које се називају "Судијом". Свако решење достављено од стране такмичара пролази кроз машину где се упоређује са неким од тестова. Постоје 2 исхода у овом случају - "решење је одбачено", што значи нетачан одговор или алгоритам није успео да испоручи одговарајући одговор ефикасно; као и "решење је прихваћено", што значи да је решење прошло све тестове успешно. Нека такмичења захтевају од такмичара да испоручи одговор у виду текстуалне датотеке у којој би се налазили одговори за сваки од понуђених питања који би они добили у такође текстуалној датотеци.

Такмичења[уреди | уреди извор]

Постоје два типа такмичарског формата: дугорочни и краткорочни. Свака краткорочна рунда траје у периоду од 3 до 5 сати, а дугорочне рунде могу да трају од неколико дана, па до месец дана.

Краткорочна такмичења[уреди | уреди извор]

У већини наведених такмичења збор превеликог броја такмичара, такмичења су подељена из више рунди. Они у већини случајева захтевају онлајн такмичење изузев последње рунде, које захтева такмичење на лицу места. Једини изузетак је ИЕЕХтреме такмичење, које се одржава сваке године и захтева 24 сата за решавање проблема. Најбољи такмичари на ИОИ такмичењу и АЦМ-ИЦПЦ добијају злато, сребро и бронзу као награду док су у другим такмичењима новчане награде. Такође добијање неких од медаља или освајање високог места може привући регрутере из великик софтверских компанија.

Дугорочна такмичења[уреди | уреди извор]

Онлајн такмичења и тренирање[уреди | уреди извор]

Програмерска такмичарска заједница широм света је створила и одржавала неколико интернет сајтова које служе за тренирање. Оне омогућавају такмичење као и неке од мањих награда. Неки од задатака на овим сајтовима се могу наћи у старој архиви од неких претходних такмичења. Ово су следећа интернет такмичења:

Веб ранг Име Опис Сајт
5808[9] Хакер Ранк Основано је 2012. године, и омогућава такмичење у различитим доменима програмирања. Такође једном годишње одржава Код Спринт који помаже програмерима да се споје са неким од програмера из силицијумске Долине. hackerrank.com
17667[10] Код Форсис Руски веб-сајт, одржава га Универзитет Саратов, који одржава до 2 такмичења недељно. Посебна могућност овог сајта је да можете да исправите грешке других такмичара и притом добијете додатне бодове.Већина ових такмичења су алгоритамска. codeforces.com
27074[11] Код Шеф Одржава га Директи, већином одржава дугорочна такмичења али има и изузетака (једно такмичење у стилу ИОИ а друго у стилу ИЦПЦ), и омогућава организовање такмичења школским установама бесплатно. Прва два места добијају новчане награде док осталих 10 добијају мајицу. www.codechef.com
28109[12] Топ Кодер САД компанија, организује такмичења сваког месеца као и фри-ленс опције за веће компаније; Већина такмичења су краткорочна али и постоје изузеци где су остала такмичења маратони који трају више од 7 дана. Једна од занимљивих могућности је да током такмичења можете да изазовете противников код тако што ће те му поставити одговарајући улаз где ако погреши ви добијате додатно бодове. www.topcoder.com
31587[13] Пројект Еулер Велики број математичких такмичења где се користе програмерске вештина само да би се имплементирале формуле.Такмичења која организује Пројект Еулер су већином краткорочна. projecteuler.net
32843[14] Хакер Земља Бангалор, Индија компанија која организује краткорочна такмичења где је награда могућност запошљавања у њиховој компанији. www.hackerearth.com
45824[15] СПОЏ Пољски Онлајн судија који омогућава велики избор задатака за тренирање,такође омогућава да такмичари сами организују своје такмичење. www.spoj.com
49763[16] ПОЈ Универзитет у Пекингу Сајт који су направили Јинг Фучен ,Ксу Пенгчен и Кси Ди. Садржи 3.055 проблема.. www.poj.org
125102 УВА онлајнд судија Садржи преко 3.500 проблема и одржава краткорочна и дугорочна такмичења сваког месеца где су награде новчане. uva.onlinejudge.org

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ „Google Code Jam”. google.com. Архивирано из оригинала 19. 02. 2016. г. Приступљено 20. 02. 2016. 
  2. ^ „TCO12 Sponsor: Google - TCO 12”. topcoder.com. Архивирано из оригинала 16. 02. 2012. г. Приступљено 07. 07. 2016. 
  3. ^ „Facebook Hacker Cup”. Facebook. Приступљено 20. 02. 2016. 
  4. ^ „ACM International Collegiate Programming Contest World Finals Sponsored by IBM”. Архивирано из оригинала 10. 03. 2016. г. Приступљено 07. 07. 2016. 
  5. ^ а б в „COMPETE - CodeChef”. codechef.com. Архивирано из оригинала 11. 02. 2016. г. Приступљено 20. 02. 2016. 
  6. ^ „Snackdown Home - CodeChef”. codechef.com. Архивирано из оригинала 12. 04. 2016. г. Приступљено 05. 04. 2020. 
  7. ^ „Programming problems and Competitions :: HackerRank”. HackerRank. Приступљено 20. 02. 2016. 
  8. ^ „Programming problems and Competitions :: HackerRank”. HackerRank. Приступљено 20. 02. 2016. 
  9. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015. 
  10. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015. 
  11. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015. 
  12. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015. 
  13. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 20. 10. 2015. г. Приступљено 18. 10. 2015. 
  14. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015. 
  15. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 11. 12. 2015. г. Приступљено 18. 10. 2015. 
  16. ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 02. 06. 2016. г. Приступљено 20. 04. 2016. 

Спољашње везе[уреди | уреди извор]

Софтвер отвореног кода за такмичења
  • Contest Management System Отворени код у Пајтону који омогућава лакше организовање такмичења