Codeへの愛とCuriosity

CodeIQ への出題・解説解題・その周辺について、思いつくままに。

問題を作ること

オフラインリアルタイムどう書く( http://atnd.org/events/43825 )と、その参考問題、そして CodeIQ と、だいたい月に三問ぐらい(時にはそれ以外にも)問題を作ってるんだけど、それぞれちょっと違うことを思っている。

オフラインリアルタイムどう書くは、1時間で参加者の半分以上が解けることを目指している(まああまりうまくは行っていないんだけど)。
制限時間もある(延長したりするけど)ので、難易度調整はシビアだと感じている。「一人をのぞいて全員解ける」を避けたいという気持ちもあるので、さらに厳しくなる。逆にほとんど誰にも解けないのも面白くない。
それと、解く方法が複数あることも重要だ。各自のプログラムの解説の時間で、みんな同じ内容だと聞いている方がつまらなくなってしまう。

どう書くの参考問題は、どう書く用に考えたけど本番に出すのはどうかと思っているものを出している場合が多い。どうかと思うポイントはいろいろあるけど難しすぎると感じている場合が多いと思う。あと、別解が出にくそうというのもある。

一方。
CodeIQ に出している問題は――とはいえ、今日でまだ二問目だけど――難易度のことはそれほど気にしていない。結城さんやstakemuraさんが出しているようなものに比べるとずっと簡単で、どう書くの本番に出している問題と同じぐらいかそれより難しく、という程度。
どう書くと違って制限時間がないし、なによりも、問題を見てから解くかどうかを決められる。そう思うと、どう書くは問題自体は簡単とはいえ、シチュエーションは厳しい。解かないという選択肢がないからね。

CodeIQ の方は、別解を出しやすいということには特に配慮していない。前回は解説で二種類のアプローチを示してみたけど、それは実は問題を公開してから思いついたものだったりする。

とまあ、難易度と別解という視点では CodeIQ の方が気楽なんだけど、やっぱりどう書くとの違いは、CodeIQ という場であること。どう書くは所詮私が勝手にやっている遊びなので、出題でミスってもまあ私がみっともないだけなんだけど、CodeIQ でミスると CodeIQ に迷惑をお掛けしてしまう。

というわけで、CodeIQ の方が断然緊張するし、推敲も一生懸命やっている。

3つに共通しているのは、中学生程度の数学しか要求しない、人間でもなんとかなるような計算をコンピュータにさせることを目指しているところ。これも時々うまくできていないけど。

まあそんなわけで、これを書いている時点ではまだ公開されていないけど、多分今日、CodeIQ に、二問目出ます。
出題者の気分としては、前回よりもほんの少し難しくて、前回よりも面白い問題のつもり。
フィードバック頑張ります。前回ほど丁寧にはできないとは思うけど。
挑戦お待ちしております。