Cozy Ozy このページをアンテナに追加 RSSフィード

2016-01-19 CodeIQでの出題について

[][]CodeIQでの出題について(2016年1月〜3月末) CodeIQでの出題について(2016年1月〜3月末)を含むブックマーク

ここに書かれた内容は、出題者名「Ozy」の問題に限った内容です

CodeIQ公式のルールではありませんのでご注意ください。

コードゴルフ問題について

CodeIQ自体が一般的なプログラマ向けのサービスであるということを考慮して、表向きは普通の問題として出題し、こっそりと「コードゴルフ」のタグをつけておきます。出題者名が「Ozy」で、タグに「コードゴルフ」が付いている場合、CodeIQの自動採点システムによる正解・不正解の判定に加え、コードサイズの測定を行います。現状の自動採点システムではソースファイルを直接アップロードすることができず、フォームに直接書いたり貼り付けたりしたものがテキストファイルに変換されます。

このテキストファイルのサイズを記録し、(自動採点システムにより正解と判定された解答のみ)コードサイズの小さい順で順位づけを行います。

正解者の一覧は本ブログとCodeIQ MAGAZINEで公開され、挑戦者のニックネーム・使用したプログラミング言語・コードサイズが表示されます。また、正解者一覧はコードサイズの順位表を元に、コードサイズの小さい方から順に表示されます。

ショートコーダーバッジ

出題者名が「Ozy」で、「コードゴルフ」タグの付いた問題では、正解者に付与されるバッジに加えて「ショートコーダーバッジ」が付与されます。ショートコーダーバッジは正解者の中で、特に短いコードを書いた挑戦者にのみ付与されます。

バッジ付与の条件

まず、言語毎の最短コードサイズから言語の順位表を作成します。

例えば、過去の問題での順位表(http://d.hatena.ne.jp/Ozy/20151107#p1)を元にすると、

順位言語コードサイズ
1Perl133
2Ruby136
3JavaScript (spidermonkey)178
4Python182
5C194
6Scala198
7Haskell201
8Python 3202
9C++11214
10Nimrod219
11AWK (gawk)247
12AWK (mawk)247
13C++281
14PHP286
15D (dmd)289
16Pike300
17C99 strict301
18C#320
19Fortran323
20VB.NET340
21Go344
22Node.js346
23R352
24Java8362
25Nemerle368
26Pascal (fpc)393
27Java7421
28Lua 460
29Brainf**k1794

のようになります。このうち上位20位までの言語(上記の表ではVB.NETまで)では、各言語の最短記録保持者に「ショートコーダー『神』バッジ」・2位以下で上位30%以内の記録保持者には「ショートコーダー『おとな』バッジ」を付与します。21位以下の言語では、最短記録もしくは上位30%以内の記録保持者に「ショートコーダー『おとな』バッジ」を付与します。ただし、『神』・『おとな』両方の条件を満たしている場合は『神』バッジのみ付与されます。

その他

CodeIQの運営方針やシステムの変化と挑戦者の皆さまのご要望を考慮しながらルールの改良を繰り返していく予定です。

ご意見等ございましたら、コメント欄やOzyのtwitterアカウントにメッセージください。

トラックバック - http://d.hatena.ne.jp/Ozy/20160119