はむ吉(のんびり)の練習ノート

プログラミングとことばに関する話題を中心に,思いついたこと,試してみたこと,学んだことを,覚え書きを兼ねてまとめます.その際に役立った,技術書,参考書,辞書,機器などの紹介も行います.

競技くそなぞなぞ (Competitive Kuso Nazonazo) と私

近年,一部の競技プログラマーの間では,くそなぞなぞが流行しています.特に,最近はプログラミングコンテストに倣って,くそなぞなぞに関してもレーティング付きのコンテストが開催されるなど,新たな展開を見せています.この記事では,くそなぞなぞの競技化について概観するとともに,私がなぜそれにはまっているかについて説明します.

更新履歴

  • 2020 年 4 月 18 日:誤字等細部の修正.「くそなぞなぞ関連記事」を追加.
  • 2020 年 4 月 17 日:初版.

くそなぞなぞとは

くそなぞなぞ*1は,一種の知的言語遊戯です.かねてからクソなぞなぞ botというものが存在し,そこで多くの例を見ることができます.一般のなぞなぞは,ある言葉について,それを露わには示さずに回りくどい説明をし,それを当てさせるというものです.くそなぞなぞも概ねそのような言葉遊びですが,くだらない駄洒落やぎなた読み,さらにはただ語感が似通っているだけの語が問題を解く鍵になっていたり,時には内輪ネタが答えだったりするというところが,「くそ」たる所以です.一方で,最近では思わず膝を打つような良問も少なくなく,もはや「くそ」と呼ぶのが憚られるものさえあります.実際に,くそなぞなぞは「くそ面白いなぞなぞ」のことであるという向きもあるようです*2

経緯は不明ですが,一部の競技プログラマの間では,くそなぞなぞを出し合う習慣が広まっています.特に,このところは,Twitter 上において,競技プログラマがくそなぞなぞに取り組んでいるのを毎日のように目にします.このようなくそなぞなぞの,レクリエーション以外の効用は不明ですが,他者の言わんとすることを推し量る訓練になるという意見もあります*3

くそなぞなぞの競技化

競技プログラミングでは,オンラインのプログラミングコンテストを通じて参加者同士が競い合いますが,これに倣って,くそなぞなぞについても有志により同様のコンテストを開催するという動きが活発化しています.このような「競技くそなぞなぞ」の嚆矢となったのは,私がさかのぼれる範囲では,2016 年 10 月に開かれたKuso Nazonazo Contest です.同じ writer により,No.3017 エスパー - yukicoder という,プログラミングとくそなぞなぞを融合させた問題が出題されたのは,新機軸と言えるでしょう.Kuso Nazonazo Contest 以後,くそなぞなぞ AGC も 2019 年に繰り返し開催されました.このコンテストでは,プログラミングコンテストの形式に倣ったであろう講評 (editorial) の発表や,最初に正解した参加者の掲示がなされるなど,より競技らしい要素が含まれています.これらのコンテストが,本邦の競技プログラミング界におけるくそなぞなぞの普及に果たした役割は大きいといえます.

くそなぞなぞの競技化を,現在進行形でより一層推し進め,好評を博しているのが,一連のくそなぞなぞ Beginner Contest です.2020 年 3 月に開かれた第一回を皮切りに,4 月 16 日時点で 3 回開催されているほか,より難しい Regular Contest の開催も計画されています.これまでのコンテストとは異なり,レーティング*4や順位表を導入するなど,より競技性の高いくそなぞなぞコンテストとなっています.もちろん,出される問題の質も高く,自力で解けても解けなくても,ある種の感動がもたらされます.Beginner Contest 第 3 回終了時点での総合ランキングによれば,約 200 名が一連の Beginner Contest の少なくとも一つに参加登録しており,人気の高さがうかがえます.私自身も,今のところ初回から欠かさず参加しています.今後も,続いてほしいものです.

競技プログラミングでは,参加者自らが問題の解説や,問題を解くのに必要なアルゴリズムやデータ構造に関する知見を書き留めて広く公開し,自他の実力の向上に役立てるという習慣がありますが,それに類する活動は,競技くそなぞなぞでも起こりつつあります.たとえば,各くそなぞなぞコンテストの終了後には,プログラミングコンテストと同様に,各自が答えやそこに至る道筋について,Twitter 上で議論するのが見て取れます.また,解答に必要な知識や技法を体系化しようという動きもあります*5.これらも,くそなぞなぞの競技化の一端であるといえるでしょう.

なぜ私はそこまで競技くそなぞなぞに取り組むのか

Twitter やこのブログで繰り返し言及しているとおり,私もくそなぞなぞを楽しむ競技プログラマ*6の一人です.楽しむどころか,入れ込んでいるというべきかもしれません.ここでは,その理由として考えられるものを挙げてみます.

言葉に対する関心

なぜかはよくわかりませんが,昔から,言葉への関心は高い方でした.分野や言語にもよりますが,文章の読み書きは好きな方です*7.今ではあまりやりませんが,詩や俳句を好んで作ったこともあります.言葉遊びについては,回文*8や折句に挑戦したこともありました.「もじぴったん DS」も,大好きなビデオゲームでした.このような背景から,くそなぞなぞについても,すんなりと受け入れられたというか,積極的に取り組むようになりました.くそなぞなぞの解答や出題を通じて,新たな語句,用法あるいは表記を学ぶことも少なくなく,私にとっては一石二鳥といえます.

辞書の活用

前節とも関連しますが,私は辞書が好きでもあります.先達にはかないませんし,模倣しようとするのが無謀なのでしょうが,私は 30 冊以上の紙辞書と,3 台の電子辞書を持っているほか,(ウェブ)アプリ上で提供される辞書コンテンツにもいくつかアクセスできるようにし,日ごろから使用しています.見聞きした言葉について,辞書を引いてみては,語釈をほめたりけなしたりしています.それ以外にも,言葉に関する疑問が少しでも浮かべば,適当な辞書にあたるようにしています.そのため,このところは,辞書を全く引かない日などないかもしれません.しかし,それでも辞書を十分活用できているとはいえません.そのようなときに出会ったのが,このくそなぞなぞでした.以前に当ブログの記事*9でも述べたように,くそなぞなぞでは類語辞典をはじめとする辞書類が大いに役立っています.もしかすると,競技プログラミングの「蟻本」に相当するものだといえるのかもしれません.くそなぞなぞで辞書を使うことにより,今まで気づかなかった,辞書の新たな魅力にも接することができるのが,うれしいところです.

その他

ここまでいろいろ書き並べてきましたが,競技くそなぞなぞに血道を上げる理由としては,それでも不十分かもしれません.理由をあえてもう一つ挙げるなら,「一見毒にも薬にもならぬような,たわいないことでも,それなりに本気で取り組めば,何らかの効用がある」という信念が,なせるわざなのかもしれません.小学生の時分には,児童書の『かいけつゾロリ』シリーズに親しみ,「まじめにふまじめ」という精神に接したものでしたが,これに近いものがあるのかもしれません.今のところ,くそなぞなぞがキャリアにつながったり,そうでなくても収入の手段になったりしたということはありませんし,そのような話を聞いたこともありませんし,そうなるとしても相当先のことでしょう.ただ,今でも,くそなぞなぞには,日ごろのしがらみを忘れ,頭をリフレッシュし,言葉に関する知識を拡げるといった効用はあります.また,くそなぞなぞの出題・解答プラットフォームの構築*10など,プログラミングなどの他分野とのシナジーが期待できそうな課題もあります.こんな効能書きを言わなくても,くそなぞなぞは,(書籍費,通信費,光熱費などを除けば)お金はかからないし,時間も取らないし,別にこれといった害もないし,やれば楽しいし,言うことはないのです.そうであれば,くそなぞなぞを楽しめている限り,続ければいいのです.

おわりに

くそなぞなぞは,一部の競技プログラマの間で行われていた余興だったはずですが,賛否両論はあるものの,ある種の競技とみなされつつあります.今後も,(競技)くそなぞなぞが末永く続くことを願います.

くそなぞなぞ関連記事

hamukichi.hatenablog.jp

*1:「クソなぞなぞ」という表記もありますが,ここでは記事名などの固有名詞を除いて,「くそなぞなぞ」と表記します.

*2:cormoran's note - クソなぞなぞコンテスト

*3:競プロ用語 - 幸せに

*4:大まかには,参加者の実力を表す数値です.

*5:たとえば,くそなぞなぞの解答と作問のための技術:すぐに試せる 8 つの方法(例題つき) - はむ吉(のんびり)の練習ノートなどです.なお,こういうのを手前味噌と言います.

*6:最近はあまり競技プログラミングに取り組んでいない気もしますが,AtCoder などのコンテストには不定期ながら参加しているので,許してください.

*7:これとは対照的に,会話や聞き取りはあまり得意であるとは言えません.

*8:回文は,競技プログラマの間でも広まりつつあることもあり,私もまた二,三作り始めています.

*9:くそなぞなぞの作問のためのヒント:参考図書の活用法を中心に - はむ吉(のんびり)の練習ノート

*10:私も取り組みたいところですが,今のところ難しそうです.