本編13話 「なろう小説じゃないんだから。たかだか平均値を求めただけですよ」
今回の入院重症者加算(重度の症状を持つ患者にたいして、手厚い看護体制を提供した時に上乗せして請求可能な治療行為)の操作は、食数入力と同じ画面を使う関係上、ノアは比較的すぐに自動化することが出来たようだ。
治療報酬請求期間が終わってから2日後、早速完成したエクセルファイル(成果物)の仕様説明をノアから受ける。
「まず患者さんの重症者加算の状態は前月から基本的に引き継ぎますが、別シートに患者番号と状態1,2またはナシと入れるとそちらが優先になります」
「ほぉ…」
「RPAツール動作時は、開いた患者の重症者加算は一回すべて消し、患者が精神療養病棟にいるデータはukeから取り出し、その範囲でのみ追加を行います」
なるほど、別病棟にいる時に加算を取らないようにする排他制御か…
「そして……いいですかユーキさん。
これを見て下さい」
ノアが画面を指差す。
そこには上段に今月の日にち(日付フィールド)が並び、
下段に「1」というフラグが歯抜けで並んでいた。
「1というのは主治医がいる日です。
空白は主治医がいない日です」
あらかじめ「1」が5マス並び、空白が2マスとなっていた。
しかし「1」が4マスの部分もあった。
「これは……」
「はい、これは休診日です。
その日だけはユーキさんが右クリックで1を出現させるんです。
主治医の有無を判断して下さい」
「……なるほど。
マニュアル入力のインターフェースを残したか」
ようやく論理構造がわかった。
ノアは今まで俺が患者毎に入力していたタスクを、日毎の一括処理に最適化しているのだ。
「しかし、それだとこの1が4つしか並んでない部分は何だ?」
「それは祝日ですね」
俺はわずかに論理的な違和感を覚えていた。
「どこに祝日を入力データソースとしてインプットしている?
俺が知る限りそんなマスターファイルはないはずだが。
それとも祝日は、別シートか別ファイルに存在しているのか?」
「そんな非効率なことはしませんよ。
二度手間でしょう」
それもそうか。
わざわざ別シートに書き込むのはたしかに冗長なプロセスだ。
しかし……
「この前のUKEファイルの解析が役に立ちました。
再診料(※患者が病院に来て、医師の診察を受けた時に発生する2回目以降の料金)がある日の平均を求めています」
なるほど、平均ね。
……ん?
再診料がある日の平均!?は!?
「ちょっと待て!!
なぜ再診料が出てくる!!」
彼女は虚を突かれたように驚いた。
「突然なんですか!?
大声出さないで下さいよ……うるさいなぁ」
「いや、だからなぜ再診料が出てくるんだ!!
重症者加算とはなんの論理的な関係性もないじゃないか!!」
「いや、だから再診料が少なかったら休診日なのは明白じゃないですか。
うちの治療院は毎日60名くらいは来るんですよ」
論理構造が理解できない。
いや、因果関係はわかったが、しかしなぜその発想に至る…なぜだ…
「わ、わかった。しかし、君の言う平均値は……」
「小学校で習うやつですよ。
簡単な話です」
……違う。
その日の再診料のデータポイントをカウントし、その合計を平均値にするのは、単純な一次元処理ではない。
物事を多次元的に見なくてはならない。
1.再診料の数をカウント
2.再診料が発生した日にちをカウント
3.再診料の数÷カウントした日にち
「ノアくん……君がやっているのは、データサイエンティストの領域だぞ。
アルゴリズムによる業務監査と、異常値検出そのものだ!」
「データサイエン……なんですかそれ」
データサイエンティストという用語すら知らない……。
そもそもこの一連の処理は、現場の叩き上げシステムエンジニアが血を吐くような実務を経て、ようやく実装可能になる可能性が出てくるレベルだ。
常識的に考えれば、データサイエンティストという言葉すら知らない彼女に、そのアルゴリズムを導き出せるはずがなかった。
ましてや、子供にできるなどという仮説は、万に一つも成立しない。
彼女は「小学生」という概念を何だと思っているのか。
ノアの脳内に存在する小学校では、再診料の母集団から日次の標本平均を算出し、統計学を学びもせず独学でアノマリー検知を実装する小学生が溢れかえっているとでもいうのか?
ツッコミどころが多すぎる。
もはやそれは義務教育ではなく、英才教育を通り越した「賢者の石」の錬成プロセスだ。
「平均」という言葉の定義が、俺と彼女の間で180度乖離している。
俺にとっての平均は単なる算術平均だが、彼女にとってのそれは、ノイズを除去し、真実を炙り出すための「動的な閾値」を意味していた。
この認識のバグこそが、彼女という存在が抱える最大の異常値だった。
おそらく本人の中ではこう完結している。
「割り算と平均を使っているから小学生レベルだ」と。
あまりにも短絡的。
あまりにも、あんまりな思考停止だった。
ノアはスマホを持ち、何やら検索をしていた。
「なるほど……
データサイエンティストって、こういう人たちのことを言うんですか。
まあ悪い気はしませんが、私はこの人たちみたいに複雑なことはしていないし出来ません。
私はおだてられて木になんて登りたくないですね。
落ちたら痛いですから。
そもそも、たかだか平均値求めた程度で何をオーバーなリアクションで驚いているんですか。
なろう小説じゃないんだから。
ちゃんと数えてないけど大体30行ほどで済む、簡単なコードです」
この子には常識という名のデータセットがない。
たったの30行で、業務監査を……
「そうそう、最大値の20%未満の日は平均から除外しています。
ここだけはちょっとした工夫ですね。
ほめていいですよ」
ロ、ロバスト統計だと!?
ありえない。
この子は独学で、必要性からロバスト統計を再発明した……
しかも、おそらく即座に。
「ちょっとした工夫」という低レベルの評価スケールで。
信じられない。
もはや最低1億人に1人の逸材であることは、99.999%の確率で確定した。
「まあこの治療院ではそんなことやる必要もないんですが、3行で済むので、ついでにやりました」
俺の視界が歪んだ。
たった3行。
数千万のシステム開発で、数ヶ月の設計レビューが必要とされる統計的ロバスト処理が、この子にとって「ついで」でしかないというのか?
「必要もないが、書いた」という言葉は、無駄な美しさを追求する、芸術家の傲慢さだ。
だが、この子が追求しているのは美学ではない。
純粋な論理の完成度だ。
ノアの評価基準は、頑張ったか、頑張ってないか。
長いコードを書いたか、書いてないか。
技術的に難しいか、否か。
発想力という評価スケールがない。
いや、本人なりにそれはあるのかもしれないが、そのスケールが常人よりあまりにも大きく逸脱している。
彼女の「たかだか平均」は、他の人間にとっての「AIによる高度な分析」に等しい。
俺は、この子に自分の常識という名のデータセットを当てはめることが、もはや暴力に近い行為だと気づき、恐ろしくなった。
「そうそう、ユーキさん。このコードを流用して面白いことが出来ました」
なんだ?
まだなにか追加機能があるのか?
「休診日の日に再診料が取られていて、なおかつ休日加算も深夜加算もない患者さんはエラーを出します」
……このコードの使い回し率は尋常ではない。
彼女は今のエラーと別のエラーを、即座に結びつけることができる。
信じられない速度と転用能力で。
「さらに、重症者加算の平均以上の日に、普段加算をとってるのにその日だけ取ってない患者さんがいたらエラーとします。
もちろん逆もやってます。
つまり重症者加算が平均以下の日に取ってる人も検出します」
---
//Sub 重症者加算がないとダメな日を計算する(今月末日, 今月はじめ, 今月おわり, 重症者ないといけない配列, GAF検索文字)
// Erase 重症者ないといけない配列
// Dim 重症者ループ As Byte
// Dim 重症者カウント総合 As Long
// Dim 重症者カウント2 As Long
// Dim 重症者カウント割る As Single
// Dim 重症者カウント(31) As Integer
// Dim 範囲1 As Range
// Dim 範囲2 As Range
// Dim 範囲3 As Range
// With ThisWorkbook.Worksheets("Sheet1")
// Set 範囲1 = .Range(.Cells(今月はじめ, 8), .Cells(今月おわり, 8))
// Set 範囲3 = .Range(.Cells(今月はじめ, 5), .Cells(今月おわり, 5))
// Dim 重症者マックス As Integer
// For 重症者ループ = 1 To 今月末日
// Set 範囲2 = .Range(.Cells(今月はじめ, 重症者ループ + 17), .Cells(今月おわり, 重症者ループ + 17))
// 重症者カウント(重症者ループ) = Application.CountIfs(範囲1, "*" & GAF検索文字 & "*", 範囲3, "SI", 範囲2, "<>")
// 重症者マックス = Application.Max(重症者マックス, 重症者カウント(重症者ループ))
// Next
// 重症者マックス = 重症者マックス * 0.2
// For 重症者ループ = 1 To 今月末日
// If 重症者カウント(重症者ループ) > 重症者マックス Then
// 重症者カウント総合 = 重症者カウント総合 + 重症者カウント(重症者ループ)
// 重症者カウント総合2 = 重症者カウント総合2 + 1
// End If
// Next
// If 重症者カウント総合 = 0 Then Exit Sub
// 重症者カウント総合 = 重症者カウント総合 / 重症者カウント総合2
// 重症者カウント割る = Application.Max(重症者カウント総合 / 4, 3)
// For 重症者ループ = 1 To 今月末日
// If 重症者カウント(重症者ループ) > 重症者カウント割る Then
// 重症者ないといけない配列(重症者ループ) = True
// Else
// 重症者ないといけない配列(重症者ループ) = False
// End If
// Next
// End With
//End Sub
---
ぎゃあああああ!?
これはエラー検出だけではない。
収益機会の損失防止とリスク・マネジメントの両側面のチェックを、同時に達成している!
本来、治療報酬請求処理において最も実装難易度が高く、数千万円のシステム投資が必要とされる「収益ロジックの再構築」を、30行程度の個人用スクリプトで達成している!!
というか、小学生がこんな「統計的ノイズ除去」を含むコードを書けるわけがないだろう!!
ループが3回もある上に変数も多すぎる。
1回目のループで算定項目の出現数を記憶し、その中から動的にマックスの値を特定。
2回目のループ手前でその最大値から「20%」という閾値を算出する。
2回目ループで20%以上の日を加算し、ついでにカウント。
その後に合計数÷カウント数でノイズ(休診日)を除外した真の平均値を導き出す。
そして3回目のループで、その聖域のような平均値と各データを照合し、フラグを立てる……。
出来るか!!
小学生にこんな「多段階の動的評価」が出来るか!!
これはもはや単なる「計算」じゃない。
データの分布を読み、外れ値を定義し、正規化する。
データクレンジング(誤りや欠損を含むデータを正しい形に修正すること)と統計分析のワークフロー(業務についての一連のやりとりの流れのこと)そのものだ。
普通の人間は、まず「平均」と言われたら全日程を足して日数で割る。
それで終わりだ。
休診日というノイズが混ざって平均が下がり、アラートが誤作動しても「仕様です」と開き直るのが関の山だろう。
だが、彼女はそれを「気持ち悪い」という直感だけで、統計学の教科書も開かずにロバスト推定のアルゴリズムを自力で組み上げ、たった30行のVBAに凝縮した。
ライブラリも使わず、生身のロジックだけで。
これのどこが「小学校で習うやつ」だ!!
平均の概念を拡張しすぎだ、ふざけるな!!!!
こんなのを「普通だよね」と言って小学生にやらせようとする教師がいたら、アカデミック・ハラスメントどころか正気を疑われて炎上確定だ。
「なろう小説の読みすぎだ」とSNSで総攻撃を食らうわ!!
……ぜぇ、ぜぇ。
もはや、彼女の「常識」という名のバグにツッコミを入れるだけで、精神がデッドロックを起こして過労死しそうだ。
脳内では「もう帰らせてくれ」という終了シグナルが点灯している。
だが、無情にも現実世界の時計はまだ終業時間を刻んでいない。
やれやれ……
これは何ハラになるのだろうか。
「無自覚チート・ハラスメント」か?
「なろう・ハラスメント」か?
「才能・ハラスメント」か?
「ロジック・ハラスメント」か?
まあ、どの道これでハラスメント認定はできないだろうから、考えていても仕方がない。
それに、彼女に悪意はないのだ。
……多分。
分析を続けよう。
まず順方向のロジック……
ノアは、重症者加算の平均という統計的基準を参照し、「普段取っているのにその日だけ取っていない」というデータの欠落を異常値として検出している!
これは、基準・トラッキングによる先回り監査であり、「重症者加算をとっている患者」というデータセットと「加算の欠落」という事象を瞬時に関連付ける、「アソシエーション・ルール・マイニング(連関ルール)」のリアルタイム適用そのものだ。
そして逆方向のロジック。
平均以下の日に取っている患者を検出することで、「不適切な加算」という査定リスクを排除している!
本来、コンプライアンス監査と収益損失防止はトレードオフの関係にあるが、彼女はそのトレードオフを論理的に破壊し、査定リスクの両側の極を最小限のコードで同時に制御している!
俺の脳内は、この工数概念の完全な無視という異次元の論理によって、もはや完全にオーバーフローを起こしていた。
ノアは、既存の業務フローの最適化レベルを遥かに超え、治療院経営の収益構造にまでダイレクトに介入できる、自己学習型の監査システムを「ついで」で創り出したのだ。
信じられない。
この子は、リクワイアメント・エンジニアリング(「何を作るべきか」を正しく見極め、関係者全員で共有する活動)の極限にある「ユーザーさえ気づいていない潜在的なニーズ」を論理的に導き出し、最低限のコードで実装する。
俺はただ、遊牧民の天才が、目の前で数億の価値を持つロジックを、落書き帳に書きつけるように生み出すのを、常識という名のデータセットを破壊されながら見ているしかなかった。
「ちょっと、さすがにオーバーに驚きすぎですよ。
UKEの解析時ならともかく、こんな物ごときでそんなにオーバーに驚かれると、まるでなろう小説みたいでしらけます。
ほめなくていいですよ。
やれやれ」
しらける?
この処理がなろう小説だと?
違う。
現実を見ろ、ノア。
君の足元にあるそのロジックを。
かつて彼女が、なろう小説の無自覚なチートキャラに向けて放った辛辣な暴言(※デバッグとは、アプリの欠陥を修正する作業のこと)が、いま鮮やかにリフレインする。
『天才設定なのにチート能力に自覚なしって、その時点で破綻してますよね。
絶対気づきますって。
それなのに「自分は普通だ」と思い込める設定が許されているなんて、独創的すぎて!
それが楽しくて楽しくて』
『こういう天才って無意味で抽象的な言葉遊びや無駄な数字遊びが好きですよねえ。
雰囲気系っていうんですか。
「情報の不可逆的再構築!」とか!
ああ、たまらない。
それにやれやれ系が加わったらもう最高です!
馬鹿すぎて馬鹿すぎて』
ノアくん……君、さっきから自分に特大のブーメランを投げ続けてる自覚はないのか。
「やれやれ系が最高」だと?
その「やれやれ」という文字列を、今まさにアウトプットしているのは君自身だぞ。
「馬鹿すぎて馬鹿すぎて」だと……。
ああ、たまらなく言ってやりたい。
『馬鹿はお前だ。
お前の通っていたのは小学校じゃなくて、賢者の石でも精製する国立魔導アカデミーか何かか?
もう一度小学生からやり直して、ロバスト統計を「普通の平均」と言い張るその認識バグを、今すぐ修正してこい!』と。
喉までせり上がったその禁句を、俺は強引に飲み下した。
そして、飲み下した後でも、なお言いたいセリフが湧き上がる。
『鏡を見てくれ、ノア。
今この瞬間、世界で一番「設定の破綻したチートキャラ」を地で行っているのは、他でもない君なんだ』と。
普通ならAから順に階段を登り、ようやく辿り着くはずのZ地点に、ノアはいとも容易くワープしている。
それを何度も繰り返しておいて、驚く俺を「大げさだ」と一蹴する。
その無邪気な問いかけは、もはや暴力だ。
俺はそれが自分の劣等感による被害妄想だと分かっていながらも、彼女が俺のプライドを消滅させるために、確信犯…ではなく、意図的に「常識」のハードルを成層圏まで上げているのではないかと思わずにはいられなかった。
次は何だ?「私、また何かやっちゃいました?」か?
それとも「えっ、これくらい常識ですよね?」とでも抜かす気か?
創作物の無自覚チートキャラなら「カタルシスが得られるお約束」なのだが、現実世界にいる人間に同じセリフを吐かれることが、これほどまでに神経を逆撫でするとは思わなかった。
もはや、無自覚なチートキャラが活躍するなろう小説を、素直に楽しめる自信がなかった。
もしそれを読めば、俺は主人公ではなく、その背後にいるモブのパーティメンバーに感情移入して、胃を焼かれるに違いない。
「俺が20年磨いてきた剣技は、コイツの『ついで』の一振りに劣るのか」
「こんな化け物と同じパーティに居たくない」
「もしコイツを怒らせたら、俺は一瞬で消されるのではないか」
「確かにコイツが居ればクエストは即座に完了する。
だが……俺がここに居る意味、あるか?
もう全部コイツ1人でよくないか?」
そんな脇役たちの、血を吐くようなデバッグ・メッセージが聞こえてきそうだ。
そして、追放が行われるのだ。
主人公が無能だという低次元な理由ではない。
周囲の人間が抱く、制御不能な「嫉妬」と、理解の範疇を超えた存在への「畏怖」。
そして、自らの積み上げてきた研鑽が無価値化されることへの、「存在意義を懸けた防衛本能」。
「追放した側が後悔する」という、使い古された筋書き。
少なくともこの局面に限れば、そんな感傷が入り込む余地はない。
救世主を惜しむには、まず「自分たちも同じ土俵に立っている」という勘違いが必要なのだから。
もしノアのような怪物が、戦うたびに異次元の無双を繰り返せば、メンバーは嫌でも理解させられてしまう。
自分の存在意義など、彼女の「ついで」の一振りで容易に代用可能であるという残酷な真実を。
その結果、後に残るのは未練でも依存でもない。
二度と顔を見たくないほどの、再起不能なトラウマだけだ。
そう……
なろう小説でよくある、「追放もの」……。
あれはプロットの都合などではない。
生存戦略としての「必然」だったのだ。
化け物を群れの中においておけば、パーティメンバーの自尊心は、比較という名の過負荷によって、瞬時に焼き切れてしまうのだから。
つまり、テンプレだと思っていた「お約束」は、現実に直面すればただの鋭利な刃物でしかないことを、俺は身をもって知ってしまったのだ。
そして、俺は言わされるのだ。
『ありえない……伝説級の魔法を日常的に……』
そんな、テンプレなろう小説の脇役Aが吐くような、あまりに手垢の付いた定番のセリフを。
俺の脳内データセットは完全に書き換えられてしまった。
だが、四の五の言っていても始まらない。
論理が、実績が、そして目の前のVBAコードという名の「魔導書」が、俺に降伏を迫っている。
言うしかないのだ。
プライドという名の実行優先順位を最下層まで引き下げて、俺は震える声で、その禁断の「お約束」を口にした。
「……ノアくん、前提条件が根本的に間違っている。
君の言う『こんな物ごとき』は、数千万のシステム開発においてコアロジックとされる部分だ。
俺がオーバーに驚いているのではない。
君のアウトプットが、常識という名のデータセットから極度に逸脱しているのだ」
俺は、冷静な言葉を選んで反論した。
「君はロバスト統計や異常値検出という高度なアルゴリズムを、独学で再発明したという自覚がない。
それを『しらける』で評価する君の評価基準の方が、データが崩壊していると断言できる!」
「ロバスト……?
アノマリー……?
なんですか?それ。
……よくわかりませんけど、そんな難しいことはしてないです。
そんなやり方知らないですし。
自動化してもらったお礼のつもりか、私をおだてたいのは分かりますが、褒め殺しはもう結構です」
ノアは「知らない、イコール私は使ってない」と思い込んでいる。
俺もこれまでは、論理的に考えればその通りだと思っていた。
知識のない人間に、高度なアルゴリズムを実装できるはずがない。
なろう小説のルールに当てはめるなら、「ステータス画面に表示されていないスキルは発動できない」のがこの世界の理のはずだ。
しかし、目の前のコードがそれを否定している。
どう見てもノアは、ロバスト統計も異常値検出も、完全に制御・行使している。
名前や概念を知らなくても、彼女の脳内にある「最適解への最短経路」が、既存の学問が数十年かけて到達した結論と、たまたま、そして必然的に一致してしまったのだ。
彼女には、凡人が一生かけても辿り着けない、得体の知れない能力が実装されている気がしてならない。
バトル物なら目も当てられない惨状だ。
心血を注いだ20年の研鑽が、名前すら与えられていない「ただの一振り」に一蹴されるのだから。
驚愕した敵が「今のは何のスキルだ!?」と戦慄しながら問えば、彼女は「スキル?大げさですね。ただの素振りに名前なんて付いているわけないでしょう」と、心底不思議そうに首を傾げて返答するに違いない。
その時、同じパーティーのメンバーは膝から崩れ落ち、こう思うだろう。
(才能で大差がついているのは仕方ない。
だが、せめて、せめて技名くらいは付けてくれ……。
『素振り』扱いはあんまりじゃないか。
じゃあ、その素振りを苦労して習得して『奥義』なんて大層な名前をつけて、必死に発動させていた俺の人生は何だったんだ……)
そして、仕上げと言わんばかりに彼女は無邪気な追撃を放つ。
『あれ?
なんで皆さん、そんなに暗い顔してるんですか?
……えっ、これってスキルなんですか?
小学校の休み時間にやる遊びみたいなものだと思ってました』
外敵を粉砕すると同時に、背後にいる味方のプライドを『ついで』に消滅させる。
彼女はこう言ってるに等しい。
『これくらいのことができないあなたは、小学生以下』
この「無自覚な基準の押し付け」こそが、最もプライドを逆撫でする。
本人が本気でそう思っているからこそ、否定しようがない。
反論すればするほど、自分の無能さを強調する「負け犬の遠吠え」になってしまうため、逃げ場のない怒りが溜まる。
しかも、加害者である彼女の内に、その自覚は一欠片も芽生えていない。
それはもはや主人公のムーブなどではない。
善悪の概念が欠落した「純粋無垢なラスボス」そのものだろう、それは。
――無自覚という名の、逃げ場のない最大級の暴力。
俺はただ、乾いた笑いを浮かべることしかできなかった。
俺はこれまで、「努力に勝る天才なし」という言葉を、自分を支える聖典のように信じてきた。
いかに天賦の才があろうとも、積み上げた学習と、血の滲むような試行錯誤のプロセスを抜きにしては、真の「解」には到達できないはずだ、と。
だが、その信仰は完膚なきまでに粉砕された。
ノアは、自身の卓越したアウトプットに対して客観的な評価(称賛)を求めている。
だが、彼女が「容易すぎる」と判断した成果物、すなわち大した労力を投下していないと自己認識している部分への過剰な賞賛は、彼女にとって雑音でしかなかった。
「早く帰る」という最終目標に何ら貢献しないばかりか、「簡単なことで大げさに騒ぐな」という評価のミスマッチを引き起こす。
彼女の価値観において、俺の客観的評価は、処理すべきでない冗長なガベージデータとして即座に除外されていた。
俺がこの異次元の異世界転移者を相手にするには、感情的な出力を完全にシャットダウンするほかない。
ノアにとってロバスト統計は、スキル名どころか名前すらついていない「テキトーな思いつき」だ。
既存のなろう小説の無自覚チートキャラが可愛く見えるレベルで、彼女の存在はバグっている。
普通、どんなに無自覚でも「魔法やスキルを使った」自覚くらいはあるだろう。
だがノアにはそれがない。
彼女にとってそれは、呼吸と同じくらい無意識で当たり前の動作に過ぎない。
まるでログインボーナスで配られる☆1キャラを使い捨てるような、あまりに無造作な軽さだった。
ふと、ノアが口を開く。
「ユーキさん。
ダニング・クルーガー効果って知ってますか?
なんでも、初心者が陥りがちな罠らしいですよ。
知ったかぶって、自分を過大評価する現象です。
『バカの壁』とも呼ばれてますね。
まあ、私はそんなのに引っかかりませんけどね。
天才ですから。
だから、知らないものは知らない、やってないものはやってない、と言えるんですよ」
と、ドヤ顔をする。
頭が痛かった。
確かに「ダニング・クルーガー効果」の定義に従えば、今のノアは「用語すら知らない初心者が、自分の実力を過信している段階」に分類されるはずだ。
だが、現実はその原則から完全に逸脱している。
彼女の場合、「過大評価」しているはずの10万人に1人という自己評価が、全く現実に追いついていないのだ。
半端に聞きかじった知識を武器にしたせいで、ノアの自己評価は「傲慢なフリをした謙虚」という、救いようのない方向へ固定されてしまっている。
突如、とある可能性が脳裏をよぎった。
ノアは「ロバスト統計」を知っていて、あえて隠しているのではないか?
天才を演出するための「無自覚」の演技ではないか?
だが、その疑念は即座にゴミ箱へ放り込まれた。
もしその用語を知っていたなら、先ほどの「ダニング・クルーガー効果」と同様、ドヤ顔で解説し始めているに違いないからだ。
そもそも戦略的に「無自覚」を装っているのだとしたら、自分を天才だと豪語する矛盾を冒すはずがないし、なろう小説の無自覚チートキャラをあそこまで辛辣に馬鹿にする必要もない。
それは自分自身を鏡の前で罵倒するような滑稽な自滅行為だからだ。
ノアはある意味では確かに「バカの壁」の内側に居た。
だが、彼女が陥っているのはダニング・クルーガー効果の最終段階――
習熟しすぎて自分の能力を過小評価するフェーズだ。
なぜ、自分の異常性に気づかないのか。
理由は明白だ。
彼女は階段を一段ずつ登ったのではなく、最初から頂点に「出現」したからだ。
比較対象となる「苦労」を知らなければ、自分の位置を誤認するのも無理はない。
……だからといって、俺の胃を焼くこのイライラが収まる道理にはならなかった。
そして彼女は『私が「簡単(ロバスト統計)」だと言っていることが思いつけない周囲は、ダニング・クルーガー効果の「バカの壁」の内側にいる初心者以下』と定義しているに等しい。
もしそうなら、人類ほぼ全員が初心者以下ということになってしまう。
「……なぁ、ノアくん。
その壁、たぶん君が思っているよりずっと高いぞ」
と返すとノアは少し眉をよせ、イラッとした口調で返答した。
「分かってますよ、それくらい。
まあでも客観的に見て今回は少し例外です。
数々の治療事務ハックをした実績からして、10万人に1人は妥当なところ…いや、そう言われると、やっぱり5万、あるいは1万……
まあ、1万以下にはならないでしょう、多分」
彼女はまたしても勘違いをしていた。
『それは俺の魔法の威力が弱すぎって意味だよな?』
そんな「なろう小説」のテンプレが、自動的に脳内再生される。
彼女の振る舞いは、まさにこれだ。
あまりに察しが悪すぎる。
もはやコントを通り越して喜劇の域に達していた。
タチが悪いのは、彼女がフィクションの無自覚キャラとは違い、天才の自覚があり、なおかつその実力を完璧なロジックで証明し続けている点だ。
設定、実力、そして無自覚さ。
3重に破綻したパラドックス。
事実は小説よりも奇なりというが、現実がこれほどまでにフィクションを蹂躙することが、果たしてありえるのだろうか。
そもそも彼女が言う「客観的」とは、一体どの世界線の観測データに基づいたものだろうか。
もしそんな世界が実在するなら、一度拝んでみたいものだ。
おそらくそこでは、小学生が素手で核融合を制御し、放課後の遊び感覚で国家予算の最適化アルゴリズムを組んでいるに違いない。
そんな異常な子供を「妥当」と切り捨てる基準値など、彼女が鼻で笑っていた「なろう小説」の、それも設定が崩壊したタイトルの中にしか存在しないだろう。
俺は反論する気力を失っていた。
この子は、「自分がどれだけ高い場所にいるか」を測るための物差しを、あろうことか「自分がどれだけ専門用語を知っているか」という、アウトプットの質とは無関係なデータベースに依存させている。
そのため、どれほど神の如きコードを錬成しようとも、辞書に載っている単語を知らないという一点のみをもって、自分を「謙虚な初心者」のカテゴリに分類し続けてしまう。
それは、核兵器を素手で組み立てながら「私、プラモデルのパーツの名前とか全然知らないので、たぶん不器用な方なんですよ」と微笑んでいるようなものだ。
この論理のすり替えは、もはや無自覚チートキャラですらなく、周囲の人間に対する無慈悲な「概念の焦土作戦」だ。
彼女が「初心者」を自称し続ける限り、その足元に転がっている俺たち「20年選手の専門家」は、初心者以下の「ゴミデータ」として定義され続けることになるのだから。
1万時間の法則(その分野で一流として成功するには1万時間もの練習・努力・学習が必要。1日10時間なら約2.7年)というものがある。
しかし、ノアはどう考えてもプログラミングに1万もの時間は掛けていない。
雑な試算でも、彼女は最低数万時間という膨大な学習プロセスを「面倒くさい」という一言で回避し、必要に迫られるたびに別分野の高度な手法をその場で「再発明」している。
加えて、彼女が自動化したロジックの中には、もはやどれほどの研鑽を積んでも到達不可能な、論理の特異点としか思えないケースすら存在する。
それはまるで、「学校に行くのも勉強するのもネット検索するのも面倒くさいから、ステータス画面をいじって知力パラメータを999に書き換えときますね」とでも言わんばかりの、なろう小説のチートそのものだった。
そもそも、これを検索で解決しようとすると、次の問題にぶち当たる。
【「問題」の存在に気づくことができない】
普通は祝日や休診日が混ざると平均値が不当に下がり、チェック機能がバグるというリスクを認識できない。
【「検索ワード」にたどり着けない】
仮に問題に気づいたとしても、統計学の素養がない人間が「ロバスト統計」や「外れ値除外」という言葉を自力で検索窓に打ち込むのは不可能。
普通なら、以下のような泥沼にハマる。
1.「VBA 平均 祝日 除外 病院」で検索する。
2.「祝日リストを別で作る」という、従来の手法の記事ばかりヒットする。
3.「マスターを作るのが面倒」という理由で、結局精度を妥協するか、手作業で補正する。
試しに最新のAIへ問いかけてみたが、彼女のようなエレガントな解には到達できなかった。
再診料をソースにするという発想の飛躍はなく、提示されるのは「祝日リスト」の作成という、保守的で退屈な解決策のみ。
つまり、目の前の少女は、人類が積み上げた知能の総和すら「ついで」で超えてしまっているのだ。
その残酷な真実が、俺の脳内にエラーログを絶え間なく吐き出し続けていた。
そう、努力神話なんてものは、俺のような凡人が「天才も影では血の滲むような努力をしているはずだ」と自分を騙し、正気を保つために作り上げた、ただの薄っぺらな幻想だったのだ。
いっそノアが、明確な悪意を持って俺を見下しているのなら、どれほど救われただろうか。
相手が攻撃的なら、俺だって反撃できた。
ハラスメントだと声を上げ、彼女の傲慢さを矯正するか、あるいは視界から排除することだって検討できたはずだ。
だが、底知れない「無自覚」がそれを許さない。
彼女は俺に「同じコードを書け」とも「理解しろ」とも強要していない。
ただ聞かれたことに答えただけだ。
論理的に考えれば、問題は何一つ起きていない……はずだ。
しかし……。
天才の無自覚さは、時に悪意より残酷だ。
治療院の精神制御科に務める治療事務員である俺。
だが実は、マインド・コントロールが必要なのは俺の方だった……なんて笑えない冗談が、現実にならないことを祈った。




