競技プログラミングというゲームについて

Updated:

Twitter に書いたものが長すぎるのでこちらに記載しておきます。読みたい人だけ読めばいい、みたいな感じです。

以下では競技プログラミングをゲームの一種としてみなしますが、それ以外の側面ももちろんあるし、それを否定するものではありません。あくまで video game player である私からみてこう見えていますということを書きます。

本文

何の事は無い。競技プログラミングというゲームは、アプデがかかり、先端についていき、それにプレイヤーがアジャストしていくゲームである。珍しくはない、典型的なオンラインゲームである。

ここで大事なのは「先端」の捉え方であるが、読まなくても良いが、詳しくは昔の記事を読んでほしい。この記事で今回大事なのは 「典型問題」「定跡」と呼ばれるものが、人口に膾炙していくまで時間がかかる ということである。

典型・定跡は、適正がある人だけがついていける

テクニックが開発されて人口に膾炙していくプロセスが積み重なる。それについていって定跡を適用するように問題を解いている人と、そうでない人が同時に毎週対戦している。上の方だと「 1000 点以下は考える要素がない」と言い切る人もいる。

そして、ついていけるかどうかは、結局 適正 に依存する、ということが言いたい。

例えば BotW の any% だと今だと回生の祠で壁抜けして OP スキップ塔スキップ+要所要所で BTB するけど、それだって貪欲についていける人にしか結局 RTA の才能ないことになる。もちろん普通のプレイヤーはそれらを少しも思いつきもしないし、やろうともしない。たとえ知っていても物凄く高度な腕前が必要で、途方もない練習が必要です。同じゲームやっているんだけど、全然違う楽しみ方をみんなそれぞれしている。

スプラトゥーン 2 、スマブラ SP 、三国志大戦みたいなゲームだって、結局アプデについていって、その環境最善の立ち回りするのを競っているわけで、そこを貪欲についていける人が強豪、そうでない人は普通のプレイヤー。適正の違いである。スプラ 2 はその競争が非常に激しいゲームで、強化・弱体化の繰り返しでどれが一番強いのかを毎月・毎週研究して有利取るゲームである。そんなこと、普通にサーモンランとか楽しみたいだけのプレイヤーにとっては、本当に苦痛ですから、やっている人ご苦労さんとしか思えない。

私もいくつかゲームやっているけど、完璧に最先端についていっているゲームもある。自分でもテクニック開発するし survey もする、重要な数値も暗記しているという。それがやはり「適性がある」ということなのではないかと思う。

補足:数学は違う

私のやった広義のゲームのうち、数学だけは少し違っていて、確かに流行り物を survey してある人は新規の結果出しやすいし、身近な教授に push されると出世もしやすいが、たとえ世界数人しかわからなくても意義深い結果をやるのが重要だといえる。ここは強調しておきたい。今の日本の数学業界は上意下達が凄いから、自分の研究内容をわかってくれる人は世界に数人しかいない。それでも本質的な結果を出すのが大事です。

それでもやはり、数学の研究では 適正 が大事だと言える。才能でもないし、好きなだけでもない。適正としか総括しようがないものが、必要である。

私は競プロに適正がない

私にとって競技プログラミングは、練習してないスマブラ SP やって楽しんでいるようなものである。だめぽ先生や ciel さんのようにプログラミングには夢中になれないのはよくわかった。休み時間は、ゲームか数学の勉強していたい。

そんな私が考える 一番避けたいことは、練習して強くなって、嫌になって、引退すること です。

AtCoder だけでなく GCJ や Codeforces の過去問も必死にやれば今より強くなるでしょう。しかしそれをやると私の疲れが臨界点に到達して嫌になってやめるだろう。だから AtCoder しか出ないし、気が向いた時にしか練習しない。そしてその結果は受け入れる。

例えていうなら、絶対にウデマエ X に行けない人がスプラ 2 やり続けているようなものです。そこで考えるのはいかに嫌な気持ちにならないか、辞めないかということですね。そういう工夫をしていることは「適正のある」人は想像しづらいかもしれない。

AtCoder の中の人たちに言いたいこと

AtCoder の中の人たちは、みんな強い人たちだと思う。 1000 点以下の問題は全部考えることなしに解けるだろう。

AtCoder というのは、単なるオンラインゲームではないのは重々承知しているんですけど、個人的には、やっぱりスマブラ SP とかスプラ 2 のようになって欲しいと思います。つまり、強い人はもちろんいていいし、尊敬を集めると。だけど、適正はないけど、そこそこの熱量で楽しんでいる人たちが、長く続けていると。後者の存在は、ゲーム運営としての AtCoder 社さんには死活問題だと思う。後者の人たちが人口としては大半なのですから。 AtCoder の存在理由は「天下一武闘会」でもちろんいいんですけど、 VIP マッチやウデマエ X にいる人たちをたくさん生産することが最終目標になってほしくない です。

もちろん AtCoder 社は ABC only をよく開いているから、プロコンに入門しようとする人の需要は認識していると思います。しかし、 定跡全部追いかけることに適正がない大多数の人は、プロコン入門した後も、典型問題でハマって、十分コンテストになる んです、それこそ永遠に。そのことは認識して欲しいと思う。間違っても ARC が「将来の VIP マッチ/ウデマエ X 生産所」と認識されるのはよくないのです。

繰り返しますが、多くの人は「定跡」「典型問題」を貪欲に追いかけるだけの適正がないのです。だから ARC とかで「こんなの典型だよな」と思いながら 1000 点以下の問題をコンスタントに出し続けるのは、とても良いことなのです。

ぜひこのことは伝わって欲しいと思う。

追記:適正なんてなくていい (2018/01/11 0:12)

「適正」という言葉を使ったが、別になくていいじゃない。たとえば、私は「数学専攻には、適正が必要だ」と考えています(詳細は別に書くと思うけど、たとえば谷村君には適正があります)。しかし適正がないからといって絶望する必要なんてなくて、別に数学専攻に行かなければいい話である、とも思う。たとえば足跡君は数学科から情報理工研究科の CS 専攻に行ったけれども、彼はなんら問題なく生きている。それと同じで、 プログラミングコンテストに適正がなくても、別にいいじゃない と思う。あまりにもつまらない or 苦行だと思うなら、辞めればいいし、そうでないなら別に続けてもいい。

あと強くなるのは義務ではない。誰からも要望されていない。強くなりたい人だけ強くなればいいし、その修行が嫌になるなら別にやらなくてもいいのではないかと思う。 最初は好きだったけど、嫌になって辞めてしまうのが、一番勿体無い と思う。これは残念なことだから、避けたほうがいいと思う。私のように典型問題が解けなくとも、それを考えるのを楽しめればいいと思います。

また、 適正がないからといってやめる必要は全くない 。そんなこと言ったらこの世で将棋を指すのは羽生善治さんや藤井聡太さんだけになってしまう。 VIP マッチ以外の人はスマブラ SP やっちゃいけないんですか? 私も語学の才能ないから英語なんて一切勉強するなってことになる。そんなのナンセンスなの明らかではないですか? プロコンも同じでしょう。自分が有意義に感じる範囲でやればいいのだと思います。