REG.RUの私たちは、興味深いイベントに参加するのが大好きです。 私たちはとても愛しているので、彼ら自身でさえ彼らを組織し始めました。 たとえば、6月13〜14日に会社のスポンサーと同僚の積極的な参加を得て、次のperl-programmers
YAPC :: Russia 2014の会議を開催しました。 いつものように、素晴らしい会社が集まり、時間が楽しくて便利でした。 さらに、今年の会議の会場は初めて、そして白い夜の真っwhite中にあるサンクトペテルブルクでした! イベントの面白い写真はソーシャルネットワーク(
VKontakteと
Facebook )で見ることができ、YouTubeでも
いくつかのレポートを投稿しました(そして、残りを投稿する希望を失わないでください)。
他の文化的活動の中でも
、昨年の会議YAPC :: Europeの経験を繰り返し、Perl Golf大会を再び開催することにしました。
今回はこの問題があります:
エルドス数
パル・エルデスは有名なハンガリーの数学者です。
Erdösは彼の人生で1,475件の記事を執筆しており、その多くは共同執筆されています。 伝統的に、数学では、共同記事はルールではなく例外であるため、このような多数の共著者の存在は、数学の民間伝承に「 エルデス数 」という概念を生み出しました。
この番号は次のように定義されます。
- エルドス自体ではゼロです。
- Erdoの直接共著者の場合、この数は1に等しく、
- nに等しいエルドス数を持つ人々の共著者は、エルドス数n + 1を持ちます。
©
ウィキペディア接続のいくつかのバリエーションから最短、つまり可能な最小数が選択されることに留意してください。
入力データ:最初の行には、エルドス数を決定する必要がある科学者の名前が含まれています。 次の行には、出版物のリストが含まれます。コンマとスペースで区切られた著者の名前、およびコロンで区切られた作品の名前。 指定された姓はどの出版物にも存在しない場合があります。
例:Chen Smith, Martin, Erdos: Newtonian forms of prime factor matrices Erdos, Reisig: Stuttering in petri nets Smith, Chen: First oder derivates in structured programming Jablonski, Hsueh: Selfstabilizing data structures
データはSTDINに提出されます:
cat data | perl golf.pl
チャレンジ:指定された科学者のエルドラーの番号を印刷します。 Erdösとの接続がない場合は、Infを印刷します。
添付のテストスイートを使用して、ソリューションの正常性を確認できます。
prove test.pl
ソリューションのサイズは、
golfcount.pl
スクリプトを使用して計算できます。
perl golfcount.pl golf.pl
タスクのテキスト、一連のテスト、および補助スクリプトは
githubにあります。
ソリューションはperlバージョン5.16.0でテストされました。それ以降のバージョンでは、smartmatch実験に関する警告が表示される場合があります。驚くべきことに、競技会での勝利のための戦いが激しくなった。 参加者は、各キャラクターをまとめて戦う前の最後の数分まで、ソリューションの改良版を文字通り送信しました。 そして、決定自体は前回よりも多様であることが判明しました。
最終的な順位は次のとおりです。
1(137文字)-
ビクターサパンコフ2(139文字)-
ニコライ・シュリャコフスキー3(140文字)-
デニス・イバエフ4(156文字)
-Pavel Shcherbinin5(180文字)-
セルゲイ・ロマノフ6(190文字)-
エフゲニーブレイキン7(200文字)-
ドミトリーラテン8(205文字)-
イリヤ・コレスニコフ9(243文字)-
エフゲニー・ボストロフ10(393文字)
-Dmitry Tigrov通常どおり、regexpを最も積極的に使用するソリューションが勝ちました。 誰が疑うでしょう。 次のようになります。
すべての参加者はREG.RUから賞品を受け取り、同僚からは大きな注意と敬意を表したカートを受け取りました。

私は、パールの知恵に無関心でないすべての人に、彼らの強さをテストし、出場者の結果を超えようとすることを提案します。 まあ、または少なくとも彼らのソリューションがどのように機能するかを理解してみてください。 これを簡単にするために、各ソリューション(
golf.pl
)の隣には、そのコピーがフォーマットされた形式(
golf_formatted.pl
)にあります。 それが本当に役立ったというわけではありません。 しかし、まだ。
あなたが突然さらに短い決定を下すことができた場合、または特に成功したトリックを思い付くことができた場合-共有することをheしないで、私は喜んであなたの決定を出版物に追加します。
投稿コメントからのいくつかのソリューション:
107文字 -xtender160文字 -brom_portret81文字 -
バイオフリーク競争に時間を割いてくださった皆さんに感謝します!