2025年5月18日日曜日

codexでパターンの問題を解く


ある記号列が、どのようなアルゴリズムでなりたっているかを解く。

- BigEyeRoadEvaluator, SmallRoadEvaluator, BeeRoadEvaluatorを使い判定をする。
  例)
  PBBBPPBPBBBPPBBBの時  
  smallroad: 誤誤誤誤誤正誤誤誤正正
  beeroad: 正誤正誤誤誤誤誤正


入力と結果を与えると、ひたすらユニットテストしてごり押しで問題を解いてしまった・・・

すごい!すごすぎる!!

グループ化のアイデアは先に与えておいたのだが、

ごり押し天才プログラマーじゃんか。

最初AGENTS.mdを用意してなかったので、評価コードを使ったり、コードベースからシミュレーションしたり揺れがあった。

コードベースからシミュレーション(コードフローを追う、人間で言うところの机上トレース)、これは1つ評価するのに3分以上かかった。





# スモールロードの判定
- 勝敗履歴から Tie(T)を除いた B/P の並びを同じ記号ごとにまとめた「グループ」を作り、常に直近のグループを評価対象とします。
- グループ数が 3 未満、または三つ目のグループの長さが 2 未満の場合はマーカー無し。
- 直近グループが長さ 1 のときは、2 つ前と3 つ前のグループ長を比較します。両方が長さ1なら「誤」、それ以外は長さが等しければ「正」、違えば「誤」。
- 直近グループが長さ2以上なら、2 つ前のグループより短い、または差が2以上なら「正」、それ以外は「誤」。

# Bee Road の判定
- 基本はスモールロードと同じ処理を offset=3 で行います。
- グループ数や三つ目のグループ長が条件を満たさない場合はマーカー無し。
- 直近グループが長さ1のとき、最初のマーカー判定では1つ前と2つ前のグループ長が異なれば「正」、同じなら「誤」。マーカーが既にある場合は両方が長さ1なら「誤」、そうでなければ長さが等しければ「正」、違えば「誤」。
- 直近グループが長さ2以上なら、3つ前のグループより短い、または差が2以上なら「正」、それ以外は「誤」。


0 件のコメント:

コメントを投稿

あいうえお