ふるつき

v(*'='*)v かに

部内でプロコンを開いた

 部内でプロコンを開いたので振り返りも兼ねてまとめておく。

開いたのは、 JMC (Joken Marathonc Contest) で、86時間のマラソンマッチ。開こうと思った経緯から準備・開催中までを書く。

できたもの

要するに n2-1パズルとかスライドパズルと言われるようなパズルで、魔方陣を作ろうぜ、という感じのパズル。各行各列と対角線でsumをとって、その分散を0に近づけたい(魔方陣なら0になるはず)、というもの。

 これを組み上げて、とりあえずテストということでkosen14sに投げた。CSRFについて指摘されたので対策しました。

 それで、まあ、Jokenでもアナウンスして、レジだけならそこそこの人数(10人くらい)になりました。

開催

 ptr-yudaiともう一人が最初に遊んでくれました。僕はSlackの通知のためにURLを設定するのを忘れていて、慌ててURLを追加したりしました。

 事前に問題文だけ公開していたのでptr-yudaiはソルバを書いてたらしく、いくらか提出をしてきました。なんか師匠の試算したスコアとサーバの弾き出すスコアが違ったっぽいのですが、とりあえずぼくが間違えていたわけじゃなかったのでそれは安心。

 今回の問題では、最小は 10 * 10 のパズルで、100*100 とか 1000*1000 でやったんですが、 100 * 100 でも十二分に大きくなってしまったのでまあ 1000 * 1000 はいらなかったかなという感じでした。

 その後、ptr-yudaiがいろいろ頑張って値を改善する時間が続きました。四年生が、手で挑戦したりしてくれました。残念なことに、それ以外の人々がまったくといってよいほど参加してくれませんでした。その晩、kyumina が取り組もうとしてましたが、結局挫折したみたいでした。    前日の反省を受けて、翌日は、スコア計算プログラム(C++版)を Slack に流したり、10*10より小さいケースを幾つか追加したりしました。これはそれなりに人気で、最小のケースでptr-yudaiがおよそ最適解と思われる解も叩き出してくれて一時だけ盛り上がりました。

 その日は、お昼過ぎにptr-yudaiを超える提出がありました。僕も楽しくなってきて自分のソルバを試しましたが、それとどっこいくらいでした。その晩は、 kyumina 向けに、「乱択アルゴリズムを使うと楽ですよ」とかきました(僕の実装が乱択やきなましもどきだったので)。僕もビームサーチもどきに初挑戦しましたが、全然だめだったりしました。

 それでだいたいおわり。結果はこんな感じでした。

f:id:Furutsuki:20170222112826p:plain

感想 反省

 レジるだけで参加してくれないひとが多かったので残念だなーと思いました。ハイスコアを狙うなら別ですが、ちょっと自分でソルバを書くだけならそんなに難しい問題ではないとおもったので(何しろ選択肢が殆ど無いので)、頑張ってほしかった。

 こちらとしても、もっとヒントをだしてもよかったな(例えば私のソルバを投げるなど)とか、もっと小さい入力でもよかったなとか、86時間は長いみたいだし24時間とかでもよかったなとか、いろいろ考えさせられました。いい経験担ったと思います。