第12話 初めてのプログラミング
練習は自由参加のはずだったが、初日をスキップしたことで、監督からしっかり怒られた。
理不尽だ。規定通りのはずだが、まぁ監督にもメンツというものがあるのだろう。
特に反省はしていないが、とりあえず謝っておいた。形式的にでも謝っておけば、だいたいのことは丸く収まる。
……まぁ、冗談はさておき。どうしても早くパソコンを触りたかったんだから仕方がない。
野球推薦じゃない新入生は4月からの参加であることを完全に忘れていた。
一年生は一般入部も含めて20名。思ったよりも一般の比率が高い。
その後、数日は真面目に練習に参加することにした。
休憩中にボトルでプロテインをシャカシャカ振っている自分の姿は、最初はかなり奇異な目で見られていたが、そのうち誰も気にしなくなった。
ある日の放課後、グラウンドに向かおうとしていたところで、数学研究会の部長が教室の出口で声をかけてきた。
「みんな、パソコンの使い方がわからないってさ。呼んできてって言われたんだ」
部室に置いておいた、凶器になりそうな分厚いマニュアル本は、どうやら役に立たなかったらしい。
まぁ、数日ちゃんと練習にも顔を出していたし、今日は少しくらい遅れてもいいだろう。
部室に向かうと、コンピュータの周りに3人が集まっていた。
どうやら、積分をやりたいらしい。
計算結果の検算を表計算ソフトでしたいとのことだ。
初歩的な質問かと思っていたが、流石全国レベルの数学研究部。いきなりめんどくさい質問をしてくる。
そういえば積分って高校で習うんだっけ? と思いつつ、ホワイトボードに概念を図解していく。
実を言うと、このコンピュータで積分をするには、表計算ソフトで数式を入れるだけでは不可能だ。
前世のコンピュータなら、関数を打ち込めば一発で積分してグラフを描いてくれたかもしれないけど、この時代はそうもいかない。
つまり、自分で数値積分法を実装する必要がある。
大学の基礎数学で扱う積分は、都合の良い関数ばかりが出てきて、公式を当てはめればスルッと解ける。
でも現実の工学では、そんなに都合の良い関数ばかりではない。そこで使われるのが、強引に積分値を近似的に求める手法――数値積分法だ。
積分は本質的には足し算。
アナログじゃやってられないような細かい足し算を、コンピュータに延々とループさせて求めさせる。
そこが数学と情報処理の根本的な違いでもある。
コンピュータは、力技ができる。
ざっくり説明し終えてから、BASICのエディタを立ち上げる。
BASICというのはプログラミング言語の一つだ。
実のところ、俺がBASICに触れるのはこれが初めてだった。
この言語、前世ではすでに時代遅れだった。
一時は改良された派生言語も使われていたけれど、それらも結局は廃れていった。
大学ではMATLABという解析特化型の言語を使っていたし、引退後にデータ分析をするようになってからは、ライセンス料が馬鹿高かったのでPythonに切り替えた。
今回は、for文と四則演算だけで簡単な数値積分のプログラムを書く。
「まぁ、多分動くだろ」と思って実行したが――
Illegal function call(不正な関数呼び出し)とだけ表示されて、コンソールに戻ってしまう。
5分ほどコードを眺めた結果、原因が判明。
変数の初期化を忘れて、それをインデックスにして配列を参照する時におかしなことになっていた。
例えば近代的な言語だとこのような場合は、
NullPointerException(ヌルポインタにアクセスの例外)と言った親切な表示が出る。
ちなみにこの例外は「ぬるぽ」という略称が無駄に有名だ。
慣れない言語とはいえ、かなりの凡ミスだ。
やっぱり、テキストエディタでプログラミングするのはつらいかもしれない。しかもエラー内容が全く親切でなくデバッグもしにくい。
説明中、数学研究会のメンバーたちは頷きながら聞いていたが、途中からは明らかに理解が追いついていなかった。
「こんな感じです!」と軽く締めて立ち去ろうとしたところ、嵐のように質問が飛んできた。
どうやら彼らは、そもそも“プログラミング”という概念そのものを知らなかったらしい。
これには正直、少し驚いた。
進学校の中でも明らかに上位層であるはずの数学研究会ですら、そんな状況なのだ。
……まぁ、情報の授業すらない時代だ。仕方ない。
箱の中から取り出したBASICの入門書(今回はちゃんと日本語)を一冊渡して、「あとは頑張ってください」と背中を押す。
「うわ、文字ばっかり……」と早くも顔をしかめている先輩たちを横目に、俺は再びグラウンドへと向かうのであった。
◇◇◇◇◇◇◇◇
本当は、BASICで投球分析用のプログラムを組んで、表計算ソフトでその結果を可視化してみたかった。
相手バッテリーの癖や配球傾向を、視覚的にパターン化できれば、戦術面で大きな武器になるはずだ。
だが――それを実行に移すには、まだ時期が早い気がしている。
このまま数学研究会にのめり込むと、気づけば数学オリンピックを目指す、まったく別の物語が始まってしまいそうだ。
そっちの世界も面白そうではあるが、俺の本分はあくまで野球だ。
それに、まだプログラムそのものの構造設計も、コンピュータに最適化されているとは言い難い。
頭の中ではいくつかアイデアが浮かんでいるが、具体的なかたちにはなっていない。
焦って中途半端に仕上げるよりも、もう少し準備を整えてから動き出すべきだろう。
そう、自分に言い聞かせて無理やり納得することにした。
◇◇◇◇◇◇◇◇
土日の俺は、練習試合の偵察に出かけることが多い。
練習には半日だけ顔を出して、それから他校の試合を観に行くのがルーティンだ。
試合の偵察には、暇そうな顧問を助手として連れ出す。
うちの学校には監督のほかに顧問教員がいて、土日でも試合をぼんやり眺めていることが多い。
ご苦労様です。とはいえ、公立校と違って私立は土日もきちんと給料が出るらしいので、遠慮なく働いてもらおう。
うちの県には、我が校のほかに、もう二校の強豪がある。どちらも宗教系の学校だ。
一つは天理市にある、新宗教系の「丹波市高校」。
もう一つは五條市にある、仏教系の「五條高校」。
うちの学校は橿原にあるので、県内の強豪三校がなぜか奈良県南部に集中しているという妙な構図になっている。
奈良の人口の大半が北部に集中しているはずなんだけどな。なんとも不思議だ。
今日は、その中の一校、丹波市高校の練習試合を偵察するために、顧問と一緒に天理まで来た。
このあたりには、前世で関西には珍しい「家系ラーメン」が食べられる店があって、休日によく通っていた。
もちろん、この世界にはそんなものの影も形もない。
「今度横浜に行くことがあれば、元祖・吉村家で食べてみたいな……」などと妄想していると、顧問に頭を軽く叩かれた。
どうやら、目的地に着いたらしい。
天理市という街は、全国的に見てもかなり特異だと思う。
市内には「詰所」と呼ばれる宿坊のような建物が多数存在し、全国の天理教信者がこの街に巡礼に訪れるという。
そのため、宿泊施設の数が異様に多い。
天理教の本殿は、日本最大の木造建築とも言われている。
現在では、この規模の木造建築は法的に建てることができず、事実上の“最大”のままだ。
誰でも中に入れるというので、以前学校見学のついでに立ち寄ったことがあるが――
廊下はゴミ一つ落ちていないほどに磨き上げられ、信者たちの熱意を感じたものだった。
そんな宗教都市にあるのが、丹波市高校。
スポーツ推薦で選手を集めているだけあり、実力者が揃っている。
そして今日の試合、運よくエースが登板しているらしい。
奈良県大会を勝ち上がるには、避けて通れない壁だ。
俺はノートを広げ、いつものように配球を記録し始める。
この記録の付け方については、連れてきた古文の教師――顧問にも教えておく必要がある。
勝手に「データ収集部隊1号」に任命しているのだから。
教師が眉間に皺を寄せながらスコアを付ける姿を眺めつつ、前途多難だな……と、心の中で小さくため息をついた。
---------
作者注。
誰も興味ないと思いますが念のため予防線。
当時のMS-BASICは学習用言語を志向し、難しいポインタという概念を意図的に隠蔽する作等になっています。ぬるぽ、つまりJavaの例えは少し技術的な正確さを欠いています。




