RGS
RGS stands for RGS's Golfing Showdown, a golfing competition.
The competition has ended, final leaderboard at the end of this post!
1 - The format
The RGS will be a virtual golfing competition with 5 code-golf challenges.
1.1 - Post dates
The 5 challenges are scheduled for 24th and 28th of February, 3rd, 7th and 11th of March and will be posted the closest to 8 a.m. UTC I manage to.
2 - Challenges
Each challenge is a regular code-golf challenge open to the whole codegolf.SE community.
2.1 - Themes
The 5 challenges will have varied themes, including maths, integer, string, etc.
2.2 - Sandboxing
The RGS challenges will be sandboxed usually.
3 - Participation
3.1 - User eligibility
Any codegolf.SE member is eligible to participate in this competition.
3.2 - Entering the competition
Any user that submits eligible submissions to each of the 5 challenges is entered into the competition by default.
3.3 - Eligible submissions
For each given challenge, a solution has to satisfy the following requirements to be considered eligible for the RGS competition:
- A solution has to be submitted in the first 96 hours after the challenge is posted;
- A solution must not be in any of the restricted languages (see section 4);
4 - Restricted languages
This section explains the restrictions on per-challenge languages "allowed" for the RGS competition. These restrictions apply only to submissions that are for the challenge. A submission in any of the restricted languages is still a valid code-golf submission!
4.1 - Purpose
The purpose of creating restricted languages is to force users to use more than one prominent language in order to compete in the RGS.
4.2 - Choosing the restricted languages
Challenges 2, 3, 4 and 5 will have a minimum of 3
restricted languages. The restricted languages for challenge i + 1
are computed as per the following algorithm:
- Start with no restricted languages and with a counter as
0
. - Sort the submissions to challenge
i
per byte count, keep ties. - Take all the languages that provided solutions with the lowest byte count available:
- Define those as restricted languages.
- Increment the counter by
1
. - Remove all the languages added to the restricted languages from the submission list created in 2.
- If the counter is smaller than
3
and we have less than5
restricted languages, go back to 3.
- Ta-da!
4.3 - Dialects
For the purposes of the restricted languages, different versions and/or dialects are counted as the same language. As examples, Python 2
and Python 3
count as the same language, as do APL Classic
and APL Dyalog Extended
.
4.4 - Example
Say that for challenge 3 we have the following submissions, with the respective byte-counts:
5 bytes: 05AB1E, Jelly
6 bytes: APL Classic
28 bytes: Python 2
31 bytes: Ruby
40 bytes: PHP
120 bytes: brainfuck
137 bytes: Java
Then the restricted languages for challenge 4 would be 05AB1E, Jelly, APL
and Python
.
5 - Scoring
5.1 - Final entry
At the fifth challenge, a user who wishes to be considered in the final RGS ranking must choose one of his/her eligible submissions (as in section 3), per challenge, to be accounted for in the final competition score. These choices must be listed at the end of the chosen submission of the 5th challenge.
5.2 - Per-challenge scoring
Each chosen submission is given score equal to its byte count 96 hours after the challenge was posted.
5.3 - Final scoring
The competition score is calculated by summing up the byte scores of the eligible submissions that the user chooses.
5.4 - Tie-breaking
In case 5.3 results in a tie, the following criteria are used for tie-breaking:
- The user with more unique languages in the 5 chosen submissions wins;
- The user that submitted earlier more times over the course of the 5 challenges wins;
- The user with the earlier submission for challenge 5 wins.
6 - Prizes
6.1 - Main competition winner
The winner of the main competition will win a 200
reputation bounty awarded by me. Sorry if this isn't much!
6.2 - Style points for surprising answers
I will also award 50 x 5
reputation bounties, one per challenge, to the answer that surprises me the most. This is entirely subjective and I reserve myself the right to attribute this bounty to whatever answer I please.
Note that because of my lack of knowledge about the full bounty mechanics, I was forced to start a 100 rep bounty on my second challenge, instead of the advertised 50 rep.
6.3 - Sponsoring
If you wish to sponsor a language you really like, or just want an excuse to offer a bounty for an answer in a particular language, you may sponsor one of the challenges, or the whole competition, by commenting below under what conditions you also want to award a bounty to someone.
Please take into consideration that consecutive bounties have to be double the previous bounty.
7 - Rankings
This section will be updated as the competition moves forward, to reflect the partial rankings of the challenges.
7.1 Challenge 1 - binary multiples
The bonus style points were awarded to this answer in Roj, a toy programming language I created a long time ago.
7.2 Challenge 2 - strings within character classes
The bonus style points were awarded to this Shakespeare Programming Language for being such a literate answer and because, I quote, "Is I as big as the sum of The cube of a big big cat the cube of The sum of A big cat a cat?"
.
7.3 Challenge 3 - help me write portuguese
I did not manage to award the bonus style points for this challenge, unfortunately.
7.4 Challenge 4 - inverting matrices modulo m
The bonus style points were awarded to Arnauld's JavaScript answer for actually computing the inverse of the matrix, instead of randomly generating matrices or going over all the possible matrices.
7.5 Challenge 5 - computing the set of all set partitions with fixed sizes
The bonus style points were awarded to this Jelly answer by Kevin Cruijssen for being a Jelly submission from a member that I associate with Java, 05AB1E and Whitespace but definitely not with Jelly.
Final leaderboard
The competition is now over and these are the final standings! Thanks to everyone who participated and I hope you enjoyed it!
- Jonathan Allan, 103 bytes
- Embodiment of Ignorance, 120 bytes
- Expired Data, 143 bytes
- Neil, 236 bytes
- Nick Kennedy, 281 bytes
- Robin Ryder, 376 bytes
- Kevin Cruijssen, 466 bytes
- Arnauld, 491 bytes