ChatGPTでAtCoder緑になりました。

プログラミング

2023年7月22日

どうもこんばんは。

なんか色々思うところを書こうと思ったんだけど、私の気持ちを伝えるのも変だと思ったので、できるだけ感情を抜いて事実だけを書いている。

前提

  • 色変記事の嬉しい話とかではなく、競技性の話。
  • ChatGPTの影響を伝えたかった為書きました。
  • 私の本来の実力は恐らくレーティング500~600くらい。
  • コードインタプリタとかは使わず、普通のChatGPT-4を使っています。
  • AtCoderではChatGPT等のAIの利用が禁止されていませんが、推奨もされていません。

ABC311で緑色になりました

今年3月から少しの間はChatGPTを使用しない純粋な競プロをUnratedで楽しみ、5月中旬から就活もありレートを上げる為の競プロをやっている。

結果、今日ABC311でABCDE—の5完ノーペナ51分でレートは+159。無事緑へ。

レートを上げる為のChatGPT

ABC311での解き方

今回の場合、ABは自力で解いて、CDEはChatGPT-4と話しながら解いた。
Cは問題貼り付けのみ、D、Eは会話しながら指示ありで解いた。

ChatGPTに出力されたコードは
付属のテストケース→自分で吟味→自分でバグりそうなテストケース作成し検証→提出
みたいな感じで解いてる。


ある意味そういう競技になってる。
AtCoder With ChatGPTみたいな。

問題の解き方の流れ

  • 問題を見る
  • 難しそうor実装がめんどくさそうならChatGPTを使うことを選択、問題文コピー
  • メモ帳にペーストし、文字を整える
  • ChatGPT-4に整えた問題文を投げる(解法が分かる場合はここで同時に解法も投げる)
  • 出力されたコードの検証
  • 提出

コツ

最大でも会話は3往復ぐらいにしている。3往復ぐらいになってダメなら新しいChatを開始するか、途中まで戻って分岐させている。これは、過去ログを認識する数の制限があるから。
認識する数は結構変動するっぽくて、最近は3つなんじゃないかとか言われてるのをどっかで見たから3回。
もし、制御したければChatGPTのAPIを使うと制御できるはず。

実際にこのコツが効いてるかはわからん。

これ以外には特に工夫はしていない。
だから、誰でもできる。
AIの反逆に備えて感謝は伝えてる。

実際にChatGPTを3か月使った推移

ChatGPT使用中の平均パフォーマンスはだいたい968
ChatGPTを使わない時の私の平均パフォーマンスは500~600なので、+300~400くらいは盛れてる

最近はChatGPT対策でかなり文章が複雑だったり、図を使ってくる問題も増えているが、それでも正直盛れる。

恐らく、今のChatGPTの使用状況だと、言語の基本文法がわかれば誰でも茶色になれる。

今のAtCoderは、茶色までであれば自分の本来の色+1くらいのバフをかけることが出来る。
なんもしなくても灰色は茶色に、茶色は緑色になれるということ。

ChatGPTを使っている人の見分け方

ぱっと思いつくものを。

  • コメントがついている
    以下は実際に私が提出したコード

    いやいや、こんな変なコメント普通つけないよ、 どう考えても。
    他にも、英語コメントバージョンもある

    流石にLet’s define the binary operation firstはおもろい。
  • 普段と置いている変数が違う
    私は基本的に小文字で変数を置く。例えば、
    n=int(input())
    とか。
    だから、
    N=int(input())
    と書いてある私の提出コードは大体ChatGPT産だよ。
  • 普段と解き方が違う
    例えば以下みたいな感じで、関数定義して__name__ ==  “__main__”で解くやつとか。

    未だに競プロでこの__main__をやる有用性がわからないので、私は絶対やらない。

この見分け方を見ていただけるとわかるんだけど、全部対策できちゃう。

コメントは消せばいいし、変数名も変えればいい。
__main__も関数を取り除いてやれば問題ない。

しかも、ChatGPTは出力が固定じゃない。だから、判別が結構難しい。
つまり、ChatGPT禁止にしても取り締まりがかなり難しい。

それでも、公式が「ChatGPTやGitHubCopilotの使用を禁止します」と言う意味は私はあると思う。
少なくとも私は使わなくなる。

ChatGPTを使うメリット

  • レートが上げられる
    本当の実力が茶色くらいの人までなら色+1くらいならできる。
    みんなが積極的に使い始めたら話は別。

ChatGPTを使うデメリット

  • 面白くない
  • お金がかかる
    一応、ChatGPT-4もGPT-3も競プロ系の性能はほぼ変わらないと言われているけど、ChatGPT-4を使おうとすると月3000円くらいかかる。
  • 競技性の崩壊
    正直私は、緑色までのレート価値がだいぶ薄れている。
    今回のABC311も、716位。Ratedで見ると478位。

    私の実力なんて良くて2500位くらい。

茶から緑になるまでにやったこと

  1. ChatGPT+に加入する

おわりに

上位層の方からするとあまりChatGPTの影響は無いかもだけど、茶色以下くらいにはかなり影響があると考えている。


とにかく、ChatGPTを使用したAtCoderは面白くない。でも、レートを上げることを第一目標にするとChatGPTを使うのがベスト。

ただ、そんなお話だけど、あまり周知されていない気がして。