見出し画像

「アルゴリズムの乙女たち」読みました(ネタバレあり)

 競プロ(きょうぷろ、競技プログラミングの略)をテーマにした新感覚小説「アルゴリズムの乙女たち」が発売されるということで、いち競プロユーザーとして早速読んでみました。ネタバレ全開ですので注意してください。

全体的な感想

 競プロをテーマにした小説を完成して出したという点で評価したい。が、作品としての評価は個人的には低い。

 少なくとも、私(競プロにかなり染まっている側)にとってはあまり面白くなかったです。かといって、競プロを全く知らない初心者が 100 %楽しめる内容かと言われたら、そうでもなさそうだと感じました。その理由を、以下に述べます。

ルール説明より先を描いて欲しい

 まず、競プロユーザー目線、そして、スポーツ作品としてのクオリティを考えた時の意見です。

 この作品は、ルール説明+α までの領域しか描けていないと感じました。

 例えば、あるサッカー漫画があったとして、そのサッカー漫画のほとんどがルール説明で終わるような内容であったら、退屈だと思います。もちろん、マイナー競技であればある程、競技自体を紹介する必要性は増します。それでも、ルール説明を終えた上で、その先を表現するかが大事、という点は変わりません。

 ただ、同情すべき点として、競プロはそのすごさを描きづらいです。サッカーだったら、スーパーゴールを描けばその魅力は一発で伝わりますが、競プロのスーパーゴールは素人が見ても全く理解できません。

 基本的に、コンテストに臨むシーンは、問題の概要も表示されず(または一言二言)、WA、TLE という判定が出て、AC、やったね。というそれだけ。あまりにその描写が簡素すぎる。

 いや、もっとあるでしょ……!

絶望が足らない

 思うに、この作品には絶望の書き込みが足りません。本気でコンテストに臨むコンテスタントは、多くの場合、本番で死ぬ程悔しい思いを経験します。必死の思いでサンプルを合わせて提出したらサンプル以外全く合わない。問題文が全く理解できない。数十分格闘した後誤読であることに気付く。余裕で通る問題のはずが、1 WA をどうしても取れず、後で解説を見て絶望する。自分の能力に対する自信が音を立てて崩れる感覚。

 そういった経験があってこそ、本番でのピンチで解法を閃く展開にカタルシスが生まれると思うのですが、そのようなアップダウンを十分に表現できているとは、残念ながら思えません。それを書くのがとてもむずかしいことはわかりますが、それを書かないと競プロを題材にした意味がないのでは、と思います。

 本作では、すべての問題が淡々と進みます。ちなみに、本作で実際にあった最大のピンチの原因は「配列の要素の指定範囲を間違える」であり、それに気付いたきっかけは「顧問と何となく話していたことを思い出した」です。あるあるだけど、淡白すぎる……。

 例えば、以下ぐらい、アップダウンと必然性がある展開があってもよかったのではないでしょうか?

  • Cコーダー(つまり緑)に上がった直後、コーナーケースに殺されてまさかの 2 完で D(つまり茶)落ち。結果に納得できず、一時期コンテスト参加を休止。復活後の大会では、その時の経験を活かし、対戦相手が気付けないコーナーケースにいちはやく気付き、最速AC。

  • O(logN) の二分探索で力任せに解ける C 問題を、解析的な解法に拘泥して O(1) で正解。達成感とは裏腹に、それに時間をかけすぎたためレートは下落。競プロの存在意義に疑問を持つ。その後、大会のボス問題で、まさにそのような高速化が必須となる難問が出て、数学科の主人公だけが正解をする。

競プロ知らない人向けには?

 さて、この作品が持つべきもうひとつの側面、つまり「競プロを知らない人への紹介」としてはどうか。これについても、これはあまり良くないんじゃないかと思う点があります。

縦書きとコードブロックが合わない

 ちょっとこれは致命的ではないかと思う点。コードブロックは英数字フォントを使うので横倒しになります。これが縦書きレイアウトと食い合わせが悪い。

明治依吹. アルゴリズムの乙女たち (徳間文庫) 株式会社徳間書店. Kindle 版.

 とても読みづらく、これでは集中して問題文やコードを読むのは難しいです。更に、コメントに全角文字が入ると、そこだけは縦書きになって更にカオスに……。

 普段の生活で呼吸のようにコードを書いている私ですら読みづらいのですから、パソコンに慣れ親しんでいない人に対する負担はそれ以上かと思われます。小説ではあまり見ないですが、横書きレイアウトでの刊行を敢行(激うまギャグ)した方がよかったのではないかと思います。

説明が雑

 主人公が初めて TLE を出すシーン。

 ──もしかして、これが原因か。
 Sは最大で3000となっていた。わたしが書いたコードでは、S+1回の処理が入れ子で三重に実行されるようになっている。ということは、最大で約27×10の九乗回の処理が実行される可能性がある。単純に考えるなら、繰り返し処理を三重ではなく二重にすることができれば、約9×10の六乗回まで減らすことができる。

明治依吹. アルゴリズムの乙女たち (徳間文庫) (pp.24-25). 株式会社徳間書店. Kindle 版.


 ここに至るまで、平均的なパソコンの処理能力が 1 秒あたり約 10^8 回であることの説明はないですし、そもそも制限時間が書いていません(ついでに言うと TLE の説明も直前までないです)。コンピュータサイエンスの素人であるはずの主人公が、なぜ詳細なループ回数とその計算時間の目安を一瞬で察することが出来るのか?

 for 文を覚えたばかりの時なんて、パソコンは、無限にネストを組んでも一瞬で計算をしてくれるものばかりだと思っていました。プログラム初心者にはそういう人が多いと思います。このあたりは追加説明が必要だと思いました。

 あと、動的計画法が初めて出てくるシーン。

動的計画法は、与えられた問題全体を部分問題に分割して、それぞれの部分問題の解を順次求めていって、最終的に問題全体の解を求める手法だ。普段のコンテストでもよく出題され、わたしたち三人は悦子の特別講義で例題を通じて基本的な内容は教わっていた。

明治依吹. アルゴリズムの乙女たち (徳間文庫) (p.136). 株式会社徳間書店. Kindle 版.


 知っている人には伝わるけど、知らない人には何も伝わらない説明だと思います。その後、ナップサック問題が出てきたり、遷移表を作ったりという説明はしません。

きらら漫画?

 主要登場人物(競技者)は全員女性、というか女子大生。これはまあ、ありえる設定です。競プロでは、圧倒的に男性ユーザーが多い競プロ界隈の中で女性ユーザーの立ち位置、という文脈も提示できるし。

 しかし、顧問も女性、アルゴコード(実質 AtCoder)の社長も女性、スタッフも女性。作中に男性は一切出てきません

 女性だけの殺菌された世界。更に、主人公チームの一員は金持ちのお嬢様の先輩! 顧問の女性は酒好きの女性! もうきらら漫画だコレ!

 なお、先輩は福岡の一等地をマンションを買ってもらっていて、しかも専属メイドが二人(!)ついています。

普通の大学生であれば、いかに女子の一人暮らしとはいえ、そう簡単に二人も雇うことなんてできないだろう。

明治依吹. アルゴリズムの乙女たち (徳間文庫) (p.61). 株式会社徳間書店. Kindle 版.

 普通の(親を持つ)大学生どころか、かなりの金持ちを親に持つ大学生でも難しいと思います。

 あと、顧問の先生の業績は以下の通り。

名だたる数学者たちが何十年も解けずにいた難問を証明したことをはじめとして、三十代前半にして数々の学術賞を受賞し、輝かしい研究業績を挙げている(中略)近々、その若さにもかかわらず教授への昇格も予定されているとかいないとか。

明治依吹. アルゴリズムの乙女たち (徳間文庫) (p.70). 株式会社徳間書店. Kindle 版.


 このような多忙な立場にも関わらず、毎週のように特別講義をしてくれたり、合宿や遠征に同行してくれたりします。高校の部活の顧問かな?

 このような設定にいちいち突っ込むのは野暮なのですが、あまりにもきらら感が強くて、途中から少しノレなくなってしまいました……。

総評

 以上の理由により、

  • 競プロユーザー向けのコアな作品としては、競技の真剣な部分の書き込みが足りない

  • 競プロを知らない人向けの作品としては、説明が雑

  • きらら漫画のような設定が少し非現実的

 という点で、作品としての評価はあまり高くない、という結論を出しました。

 ただ、競プロを題材にした作品を作り上げるという試みがそもそもとてもむずかしいものである以上、その点は評価しつつ、さらなる魅力を持つ作品が今後出てくることを期待します。


この記事が気に入ったらサポートをしてみませんか?