カメヲラボ

主にプログラミングとお勉強全般について書いてます

ABC問題一人反省会

背景

CodeIQで釣り問題を作ろう!ということで、『一見簡単そうに見えて、実際やろうとするとなんじゃこりゃ!?』みたいになる問題を用意しました。それが、

A + B = 15
A + 2B = 35
です。このとき、A + B + Cはいくつでしょう?

という問題です。ただの16進数計算を、連立方程式っぽく見せているだけの問題です。連立方程式は中学2年生で習いますから、(解ける解けないは別として)馴染みのあるものです。結果として、この問題は挑戦者が過去最高の669名を記録しました。また、宣伝効果としても、大成功と言えるほど、非常に良い結果でした。

想定と実際

背景の通り、見せかけだけの問題ですから16進数として計算した21を想定解とし、当初は(個人的に)300名くらいの挑戦者で、想定解を解答する挑戦者が、大体70%程度だろうと読んでいました。ところが実際は、予想を大幅に超える669名・想定解が40%程度でした。また、大半が想定解であろうという予測から、解答の種類を正解/不正解の2種類だけ考え、正解(とする)人に付与するバッジも1種類しか用意していませんでした。

何がダメか

無理やり感

むしろ、「正解を21と想定していたので、21の人しかバッジプレゼントできませーん、ごめんなさい!」とか言ってしまった方がマシだったかも、思えるほど、熱心に「これは何が何でも16進数です!」という説明に終始しているところですね。結果として相当インチキ臭く見えたことでしょう。なんでそこまでするかっていうと、まあ次項に本音も書いておきますが、それ以外に21と答えている挑戦者の解答内容が明らかに良かったからです。丁寧に考えていますし、根拠をかなり詳細に書いてくださった方も結構いらっしゃいました。主観と言われればそれまでですが、このあたりは特に考えが変わることはありません。

批判しにくい

まあ本音を書きますと、「16進数って言われたら、そう見えるでしょ?」と思っております。これはご自由にご批判いただいたら良いと思います。「見えねーよカス」「そんなクソ問題作るな」等々。しかしひとつ問題がありまして、こちらの想定解以外の解答をしてしまった人は、それぞれの論理・言い分があるにも関わらず、「不正解の人」というポジションから発言せねばならないということです。
「ショーモナー」と思った程度の人ならあまり問題ないかもしれませんが、腹が立ったり悔しかったりした人が多数いらっしゃると思います。それで素直にクソーと怒れる・苦情を言う、ということができる人は、それもまだ良いかもしれません。ただ、負け惜しみみたいになってイヤだから…と考えて文句も言えない方々には、本当に申し訳ないと思います。

どうすればよかったか。

今回はとにかく注目を集めるために作られた問題で、そもそもきちんと正解者を決める必要がないわけで、真面目なものから面白いものまで、色々な解答があったわけですから、普通に分類をして紹介すればよかったのです。昔やったチョードコーディングのように、一番解答数が多かったものを正解にする、みたいなものでもよかったかもしれません。このあたりは完全に調整不足ですね。

今後に向けて

挑戦受付期間が3週間ほどあったのだから、一定の期間で区切って集計し、状況を確認しておくというようなことをしておくべきだと思います。早めに状況が把握できれば、前述の対策がある程度できたでしょうし、解答のタイプごとにバッジを作成するとか、もしかしたらできたかもしれません(かなり難しいかと思いますが)。
“話題性”と“絶妙な難易度”と兼ね備えた問題の作成は至難の業で、相当練らないといけない。特に定期的にいろいろな問題に挑戦する人と、新規の挑戦者の慣れとかスキルレベルにかなりの差があるので、間を取ったところでどちらとっても中途半端な問題になりかねないから、かなり慎重にやらないといけないですね。
あとは最後のフォロー。採点作業や集約を急ぎ過ぎたと思います。作業に1週間ほどかけても良かったかもしれません。


というわけで、思ったことをざっくり。また何か思いついたら書き加えるかも。