Topcoder

Topcoder Inc.
Sorts Företag
Bas april 2001
Plats USA , Connecticut , Glastonbury
Industri IT-bemanning Mjukvaruutveckling
Outsourcingtjänster
Antal anställda 75 (2006) [1]
Hemsida www.topcoder.com

Topcoder  är ett företag som är värd för sportprogrammeringstävlingar . Till skillnad från ACM International Collegiate Programming Contest är alla tävlingar individuella.

Skapad i april 2001. I juli 2008 fanns det mer än 160 000 användare, varav cirka 28 000 deltog i Algoritmtävlingen minst en gång.

Typer av tävlingar

Algoritmer ( eng. Algorithm  Competition )

Den mest populära typen av turneringar är en tävling för snabb lösning av algoritmiska problem (liknande skol- och studentprogrammeringstävlingar). Det ligger i det faktum att varje deltagare får 3 uppgifter, olika i komplexitet, indelade i 3 nivåer. Varje uppgift har sitt eget maxvärde i poäng. Vanligtvis 250, 500 och 1000. Poäng ges endast för lösningar som erkänns som korrekta, dellösningar beaktas inte. Innan tävlingen startar tilldelas deltagarna virtuella rum (upp till 20 personer).

Sådana matcher, kallade SRM (Single Round Match), äger rum ungefär en gång varannan vecka. Dessutom hålls årliga turneringar. Matchen består av tre huvudfaser – kodning, utmanande och systemtestning.

Programmeringsstadiet _  Kodningsfas

I den första fasen försöker deltagarna lösa de tre uppgifter som de föreslås, vanligtvis uppskattade till 250, 500 och 1000 poäng, på den tilldelade tiden. Lösningen är att skapa den klass som anges i villkoret och implementera metoden som anges i villkoret, genom att klara alla förberedda tester. Bidragsgivare får skriva lösningar på något av följande språk: C++ , C# , Java , VB.NET eller Python . Antalet poäng för ett löst problem beror icke-linjärt på tidpunkten för att skicka den slutliga lösningen: ju senare, desto färre poäng. För varje återinlämning debiteras 10 % av kostnaden för uppgiften. Antalet poäng får inte vara mindre än 30 % av kostnaden för uppgiften.

Turnéns längd i vanliga matcher ( eng.  Single Round Match , förkortat SRM), samt kvalificeringstävlingar för turneringar ( eng.  Online Elimination Rounds ) är 75 minuter. I finalerna på plats ( eng.  Onsite Events ) är längden på den första fasen 85 minuter.

Konkurrensmässigt teststeg  Utmanande fas

I den andra fasen försöker deltagarna hitta ett test (alternativ för indata) där konkurrenternas lösningar (som befinner sig i samma virtuella rum) kommer att fungera felaktigt. Samtidigt är det tillåtet att se källkoden, men det är omöjligt (omöjligt) att köra konkurrerande program. Varje framgångsrikt tillvägagångssätt ger 50 poäng, och ett misslyckat tar 25 poäng. Om tillvägagångssättet var framgångsrikt kan testet läggas till testsviten som används i nästa fas. Varaktigheten av denna fas är 15 minuter i alla matcher utom head-to-head finaler (10 minuter). Deltagaren är förbjuden att försöka passa ett test där andra lösningar inte fungerar om hans poäng inte är positiv.

Sista teststadiet  Systemtestningsfas

I den tredje fasen testas alla lösningar från alla deltagare som inte visade sig vara felaktiga enligt resultaten från den andra fasen. Slutresultatet av matcherna håller på att utformas.

Resultat

Klassificeringen av deltagare och deras slutliga placering på platser bestäms av det slutliga antalet poäng deltagarna har. Deltagare med fler poäng tar högre placeringar. Vid lika poäng upptar (delar) alla deltagare med ett givet antal poäng samma plats.

Om det inte förekom några tekniska fel under tävlingen räknas betyget om för alla deltagare.

Design- och  [ redigera

Detta är den typ av konkurrens som ligger närmast industriell programmering. Par av programmerare deltar i dem. Den första skriver en detaljerad specifikation för någon komponent beställd av ett tredjepartsföretag, och den andra implementerar den i .NET eller Java. Arbetet utvärderas av flera juryer och enligt deras bedömning sätts slutpoängen.

Marathons ( English  Marathon Competition )

I maraton löser deltagarna mer komplexa och icke-standardiserade problem än i andra typer av programmeringstävlingar för Olympiaden. I maraton finns ingen indelning i divisioner, och endast en uppgift ges i varje tävling. Till skillnad från Algoritmen är den "rätta" eller bästa algoritmen inte känd ens för författaren till problemet. Ofta finns det bättre och sämre svar för varje uppsättning ingångar, och ett program som alltid hittar det bästa svaret inom rimlig tid är okänt för författaren till problemet, och kanske inte existerar. Deltagaren ska skriva ett program som hittar bästa möjliga svar under en given tid (vanligtvis 10 sekunder). I vissa fall är det nödvändigt att hitta rätt svar på kortast möjliga tid. Det finns andra alternativ.

Det tar vanligtvis 1 eller 2 veckor att slutföra uppgiften.

Deltagare är tillåtna:

  • Provtester. Programmet som lämnas in av deltagaren testas på 10 tidigare kända datamängder. Deltagaren får resultaten av programmet, dess utdata och körtiden för varje datamängd. Andra deltagare kan bara lära sig om skentestet. Du kan köra ett provtest var 10:e minut.
  • Kompletta tester. Programmet testas på 100 hemliga datamängder som genereras slumpmässigt innan tävlingen startar, samma för alla deltagare och konstant under hela tävlingen. Deltagaren informeras endast om det totala antalet poäng som gjorts av programmet. Namnet på deltagaren och poängen av honom i det senaste hela testet anges i en tabell som är tillgänglig för alla deltagare. Ett fullständigt test kan utföras en gång var 1 timme.

Efter avslutat beslutsfattande testas programmen som skickas till hela testet (det sista programmet som tas från varje deltagare) på ett stort antal (vanligtvis 500) hemliga, slumpmässigt genererade datamängder, samma för alla deltagare. Deltagarna får platser beroende på antalet poäng de har fått.

Kort beskrivning av några uppgifter

Nedan finns exempel på uppgifter som erbjuds i maraton. Många detaljer är utelämnade från exemplen.

  • subgraf isomorfism. Givet en graf G och en graf H för hörn som är isomorfa till en subgraf i graf G. Ta reda på vilken vertex i graf G som motsvarar varje vertex i graf H. Om graf H är isomorf till två eller flera subgrafer i graf G, någon av isomorfismerna accepteras. Programmet får först en graf G och en graf H med 5 hörn, efter ett korrekt svar ytterligare en graf H med 6 hörn, efter ett korrekt svar en ny graf H med 7 hörn, och så vidare. Poängen är lika med antalet subgrafer för vilka programmet lyckades hitta en isomorfism. Programmets gångtid är inte mer än 10 sekunder. [1] Arkiverad 13 april 2012 på Wayback Machine
  • Cellulär automat. Reglerna för beteendet hos en cellulär automat i ett rektangulärt område anges initialpositionen, N och K. Hitta startpositionen som skiljer sig från den givna med högst N celler, så att efter K stegar antalet levande celler kommer att vara så stora som möjligt. Punkterna är lika med förhållandet mellan antalet levande celler och den totala arean av rektangeln där den cellulära automaten fungerar. [2] Arkiverad 25 maj 2014 på Wayback Machine
  • planhet. Given graf. Hitta en platt läggning av grafen, där hörnen är punkter i ett 700×700 heltalsgitter, och kanterna är segment som förbinder hörnen, så att antalet skärningspunkter mellan kanterna är så litet som möjligt. Punkterna är omvänt proportionella mot antalet kantskärningar. [3] Arkiverad 13 april 2012 på Wayback Machine

Betyg

Topcoder är den första och mest prestigefyllda formen av sportprogrammering som har ett rankningssystem baserat på deras prestationer i onlinetävlingar. Baserat på den gjordes den stängda vitryska sajten Test The Best och den ryska Codeforces .

Betygssystemet delar in deltagarna i följande kategorier:

Gruppfärg Betyg
Vit Deltagare som aldrig uppträtt
grå mindre än 900 poäng
Gröna 900-1199 poäng
Blå 1200-1499 poäng
gul 1500-2199 poäng
Röd 2200 poäng eller mer
Ledare ( engelska  mål ) 3000 poäng eller mer

Algoritmtävlingsdeltagare med ett betyg på minst 1200 tävlar i första divisionen. Alla andra är i tvåan. Den 18 januari 2010 har cirka 800 av de starkaste programmerarna det gula betyget från Algoritmtävlingen, cirka 200 har det röda betyget och bara 17 personer i världen har "Target". [2]

Inom Design, Development och Marathon Matches har ingen ännu lyckats få upp Target-nivån, och den röda gruppen består av högst 10 personer (i Development - endast två).

Tävlingar

De största av turneringarna är Topcoder Open (ett inofficiellt världsmästerskap i programmering bland proffs) och Google Code Jam (fram till 2007, sedan 2008 har det hållits av Google oberoende [3] ).
Utöver dem hölls fram till och med 2007 en turnering för studenter - TopCoder Collegiate Challenge. [4] .
Sedan 2006-07 har individuella matcher och en årlig turnering för skolbarn - TopCoder High School - genomförts.

Anteckningar

  1. Topcoder jobb och profil (nedlänk) . Yahoo! Heta jobb . Hämtad 29 november 2006. Arkiverad från originalet 1 juni 2005. 
  2. TopCoder-statistik - Topprankade algoritmkonkurrenter . Hämtad 18 januari 2010. Arkiverad från originalet 17 januari 2021.
  3. Code Jam-regler . Hämtad 25 juni 2008. Arkiverad från originalet 22 juni 2008.
  4. TCCC: Ett svårt beslut . Hämtad 25 juni 2008. Arkiverad från originalet 19 februari 2011.

Länkar