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

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

くそなぞなぞの解答と作問のための技術:すぐに試せる 8 つの方法(例題つき)

競技プログラマーを中心に,くそなぞなぞが最近ますます関心を集めています.本記事では,それらの解答や作問にあたり,役に立ちそうなことを,暫定的にまとめます.今からでもできる基本的なものに加え,辞典類の活用を含む,一歩進んだ技法についても,説明します.

お知らせ

本記事の内容を発展させ,くそなぞなぞを解く方法についてさらなる体系化を図った記事を作成しました(2020 年 6 月 22 日追記).
hamukichi.hatenablog.jp


また,くそなぞなぞの作問に特化して,関連する技術を詳述した記事を新たに作成したため,作問についてはそちらをご覧ください(2020 年 3 月 19 日追記).


はじめに

近年,競技プログラマーを中心に,くそなぞなぞに対する関心が高まっています.くそなぞなぞとは,主に「......ってな~んだ」という形式のなぞなぞであり,しばしばだじゃれや単なる語感の類似性が鍵となっているなぞなぞです.しかし,最近ではそれにとらわれず,高度な換言や連想を必要とする高品質ななぞなぞや,画像などのメディアファイルを利用した新形式のなぞなぞも出題されています.そのため,cormoran's note - クソなぞなぞコンテストで述べられているように,くそなぞなぞはむしろ,「くそみたいに面白いなぞなぞ」とみなすべきなのかもしれません.最近では,くそなぞなぞ AGC (KGC) が Twitter 上で開催されるなど,単なる気晴らしからある種の競技へと変貌を遂げつつあります.

競技プログラミングにおいて必要な知識,技術の体系化は,『プログラミングコンテストチャレンジブック』(通称:蟻本)などの書籍や,有志の方々による Web 上の記事といった形で,いまや高度に進行しています.それに倣ってか,くそなぞなぞにおける技術や戦略等も,集約が始まりつつあります.たとえば,クソなぞなぞコンテストに参加する上での個人的な小手先のテクのまとめを書こうとした記事 - 怠惰の累積和 では,くそなぞなぞコンテストにコンテスタントとして参加するために役立つ技術が述べられています.そこで,私も,日ごろやっている,あるいはやろうとしていることを中心に,くそなぞなぞの解答や作問に役立ちそうな手法等をとりあえずまとめてみることにしました.決して網羅的とはいえませんが,何かの役に立てばと思います.

基本的戦略

方法 1:日ごろから出会った言葉で遊ぼう

コンテストの準備や参加の際だけではなく,それ以外の日常生活においても,くそなぞなぞのためにできることはあります.見聞きしたり頭にふと浮かんだ語句をいろいろといじくってみると,作問の種ができたり,似たくそなぞなぞが出題された際の対策になったりするかもしれません.後でも述べますが,くそなぞなぞの中には,似た響きの言葉,同音異義語,同訓異字,類語等で構成されるものが少なくありません.これらを考慮しつつ,遭遇した言葉を「転がして」みると,新たな発見があるかもしれません.たとえば,「フラスコ」なら「振らす子」,「円周率」なら「塩,収率」など,自由に考えてみるとよいでしょう.

方法 2:声に出してみよう

解答や作問で詰まったときに,もし声を出しても差し支えない環境にいるのならば,問題となっている語句を実際に発声してみるとよいでしょう.画面の上では,同音異義語や同訓異字には気づいても,似た響きの言葉には気づけないかもしれません.口に出せば,意外な発見があるかもしれません.

方法 3:書いてみよう

上記と関連しますが,紙に書いてみても,新たな展開があるかもしれません.たとえば,漢字の構成(いわゆる字謎)や,似た字面の言葉が鍵になっている問題では,これが有効な方法になりそうです.

参考資料の活用

以上のような方法だけでは,なかなかくそなぞなぞの解答や作問に至らない場合もままあります.例えば,難度の高いくそなぞなぞに遭遇し,言葉を「転がし」たり,声に出したりしてみても,なかなかそれらしき答えを思いつかないことがあります.作問にあたっても,同様の問題があります.そこで,辞典類をはじめとする参考資料の助けを借りるという方法があります.ことばについて知るために,辞典が大事なツールとなるのはご承知の通りでしょうが,言葉遊びの一種であるくそなぞなぞにも,たとえば以下のような形で役立ちます.最近では電子版や Web 版の辞書コンテンツも数多くあるので,今からでもこれらの手段を試せます.

ただし,コンテスト等で,解答に参考資料を使う際には注意が必要です.以下で紹介する方法の中には,参考資料を使ってなぞなぞを「機械的に」解くというものもあり,濫用すると興を醒ます場合があります.これらの方法はどうしても解けない場合にとっておいて,まずは頭をひねるのを楽しんでみるのもよいかもしれません.そもそも,辞典などを引いている間に,ほかの誰かに先を越されるという問題もありますが.

方法 4:類語辞典で言いかえを探そう

くそなぞなぞの中には,ある言葉を同じ意味の別の言葉,すなわち類語に置き換えることで成り立っているものが少なくありません.そこで,くそなぞなぞの問題で気になる単語があった場合に,各種の類語辞典でそれを調べることで,そのような言いかえを見つけることができます.同様に,作問にも有効な手段となります.Web 上で無償利用できるものとしては,類語辞書 - goo辞書があります.これは,定評のある小学館『使い方の分かる類語例解辞典新装版』に基づいており,使い分け等の情報も豊富です.もちろん,書籍版を買うこともできます.

また,上位モデルの電子辞書(Ex-word など)には『角川類語新辞典』が搭載されていることがあり,これを利用するという手もあります.紙版では,『角川類語国語辞典』が現在新本で入手可能です.『角川類語新辞典』よりも小ぶりながら,収録語数等がより一層充実しているという特長があります.私も座右に置き,さまざまな文書作成に用いています.

なお,実用辞典の部類になりますが,学研『ことば選び実用辞典』は数百円程度であり,とりあえず紙の類語辞典を手にしてみたい場合にはよいでしょう.収録語数は少ないものの,日常の用途にはそこそこ使えます.出先等に持ち運ぶ際には,こちらを活用しています.

方法 5:外国語への/からの言いかえを考えよう

上と関連しますが,くそなぞなぞの中には,英語などの外国語から日本語,あるいはその逆を要求するものがあります.そのようなとき,英和辞典,和英辞典などの辞典が必要となります.Web で利用できるものとしては,goo辞書 英和辞典・和英辞典 (『プログレッシブ英和中辞典』を収録)などがあります.なお,参加者の属性からか,情報学,数学,自然科学に関する専門用語がくそなぞなぞの鍵となることも多くあります.そのため,できれば『新英和大辞典』『新和英大辞典』などの大辞典や,『理化学英和辞典』『自然科学系英和大辞典』『自然科学系和英大辞典』などの自然科学系辞典があると安心です.これらは上位モデルの電子辞書に収録されていることがあります.

方法 6:特定のカテゴリの言葉をしらみつぶしに見てみよう

「...な△△ってな~んだ」(△△は何らかのカテゴリ)という形式のなぞなぞには,△△に含まれる言葉を考えられる限り全て列挙するという「エレファント」な解法があります.たとえば,△△が調理器具であれば,おたま,フライパン,鍋,......といった具合です.そのようなときに役立つのが,中型*1以上の国語辞典の Web 版やアプリ版にある,全文検索機能です.たとえば,goo国語辞書には『デジタル大辞泉』を「~を説明文に含む」という条件で検索する機能があります.また,絵から引けるタイプの辞典も有用です.たとえば,『ワーズ・ワード』(品切れ)では,さまざまな事物がカテゴリ別に図示され,それに対応する英語と日本語が記述されています.先述した,英語・日本語間の変換にも便利です.加えて,Wikipedia における「△△の一覧」といった記事も有用です.

方法 7:競技プログラミング関連書籍にも目を向けよう

辞典とはやや異なりますが.『プログラミングコンテストチャレンジブック』などの競技プログラミング関連図書も,重要なヒントとなることがあります.主に競技プログラマーの間で行われるくそなぞなぞの中には,その答えがアルゴリズムやデータ構造になっていることがあります.そのため,このような図書も,忘れずに手元に置いておきましょう.

方法 8:過去のなぞなぞも見てみよう

くそなぞなぞを解くヒントや,新たな作問の着想を得るのには,以前に出題されたなぞなぞを振り返るのも効果的です.くそなぞなぞ writer の方々の中には,過去に出された問題を Twitter モーメントなどとしてまとめておられている方がいらっしゃいます.また,なぞなぞをまとめた成書にあたるのも効果的です.たとえば『中世なぞなぞ集』は,中世に著されたなぞなぞ集をまとめた本です.当時の時代背景に関する知識が必要なものもありますが,現代の私たちにも面白いものも数多くあります.巻末の解説も,なぞなぞ史を学ぶ上で有用です.

例題

先述の技法を用いて,以下のなぞなぞを解いてみましょう.

肉が寝転んで反って曲げられると出てくる,化学実験で使う液体ってな~んだ.

これは自作のものです.手前味噌で申し訳ありません.以下に,解説を示します.

方法 6 に基づくと,「化学実験で使う液体」にあたるものを全探索すればよいように一見見えますが,実際のところ,そのような液体はあまりに数多くあり,現実的ではありません.そこで,別の方法をとることにしてみます.とりあえず,A「肉」,B「寝転ぶ」,C「反る」,D「曲げられる」がキーワードであることが分かります.方法 4 により,類語辞典にあたると,B の類語として B'「横臥」が見つかります.このように,くそなぞなぞではやや高級な漢語が鍵になることが時々あります.また,D ではわざわざ「曲げられる」とあるので,受け身が疑われます.ここで,方法 5 に基づき和英辞典にあたると,「曲げる」にあたる bend という単語が見つかります.この過去分詞は bent,カナ書きすると D'「ベント」です.以上をまとめると,A「肉」,B'「横臥」,C「反る」,D'「ベント」となり,並び替えて「オーガニックソルベント」(organic solvent),すなわち答えは「有機溶媒」となります.お粗末様でした.

おわりに

ここまで,くそなぞなぞの解答や作問に役立ちそうな技法を,思いつくままに挙げました.楽しみが保たれる程度に,適宜活用してみてください.よいくそなぞなぞ生活の一助となれば幸いです.

*1:収録語数 20 万程度.