第36話 策に溺れる

 私、マリエッタ印刷技師の今の研究テーマは魔法陣の印刷だ。


 凹版印刷の試し刷りは思いのほかうまくいった。試し刷りは2進数1桁のごく簡単な試験的なものであったが、魔力を通すことで無事に作動することが確かめられた。


 実用的な印刷が可能であることが分かったので、次のステップは実用的な原版を作ることになる。以前、アラン先生が描いてくれた2進数8桁の加算器である。幾度となく描かれ洗練されたその魔法陣は美しくさえあった。


 そして――


 地味な彫金作業である。これが研究員の現実リアルだ。





 アラン研究室の主、アラン・トゥルニエは暦魔法陣という大作を仕上げて、次の課題を何にするかを考えていた。

「クラウス君の状況はどうなんだ?」

「うーん。三角関数の魔法陣がなかなか手を付けれていないんですよ」

「暦がひと段落したし、次はそこをやるか」

「本当ですか? 助かります。今のところ特定の角度の場合だけ固定値つかってやってますからねえ」


 ん? クラウス君の含みのある笑みはなんだ? まあいい、三角関数の魔法陣は測量にも用いることができるので、建築家のバルトロメオ先生にも求められたものでもある。独立の魔法陣として十分に意義があるところだ。


「わかった。その部分は私で引き取ろう。汎用の三角関数魔法陣になってればいいんだろう?」

「ええ。そうできればとても嬉しいです」


 よし。次の目標は演算魔法陣の高機能化だな。三角関数まで用いることができるようになれば効果は大きい。





「しまった。クラウスめ、騙したな……」

「人聞きの悪いこと言わないでくださいよ」


 任意の角に対して三角関数を求める汎用的な公式は知られていない。故に、個々のケースについて幾何学を駆使して値を求めたものが三角関数表として出回っており、それを使って計算をするというのは現代中世の実情であった。


 結局、私は以前の議論をすっかり失念していたのだ。実用上の観点からは三角関数表そのものが使える程度の機能性でよかったのだ。そしてそれは、ひたすら地味に角度に対して定数を返すという、とりたてて工夫するものはなく、それでいてパターン数がひたすら多くて面倒くさい魔法陣を描くという苦行であった。


「だめだ。これは人海戦術でやるやつだ。誰か手の空いてる者はいないか? 三角関数表を描く作業だ。報酬も出るぞ!」


 私とクラウス君とのやりとりがあったせいか、院生たちも地雷案件か!? と警戒していたようだが、彼らは総じて金がない。報酬の出る仕事となればやってやろうという者はいた。


「アルミン、やってくれるのか」

「私で良ければお手伝いします」

「じゃあまず、この三角関数表を2進数にするところからだ。手計算だと大変だから……分数を2進数にする魔法陣を作ったほうがいいなこりゃ……」


 三角関数は正弦サイン余弦コサイン正接タンジェントの3種を用意する。入力情報は角度を½(0.5度)刻みとし、出力は1/100万の精度で出す。ほとんどの値は0~1の間に収まるのだが、45度を超える正接タンジェントは1より大きい。それでも84度までは10未満で済むのだが、89度に至っては 114,588,650 / 1,000,000 となり、整数部だけで114にもなる。これは2進数で表現すると7桁となってしまう。89度なら整数部は57で2進数6桁。つまり、正接タンジェント89½度のためだけに1桁増やさなければならない! 忌々しい!


 1よりも小さな分数部分は2進数で20桁用意することとする。2進数で10桁あると1/1024を表現できる。2進数10桁がおおよそ10進数3桁となるので、このあたりが使い勝手が良い。


 さて、数日かけて、地味な労力を割いて2進数に直した三角関数表を作り上げた。簡単に言っているがここに大変な労力が割かれていることは理解していただきたい。むしろクラウス君が後回しにしていた理由というのはまさにこの地味な労力だからという理由だろう。さて、あとは角度に応じてこの三角関数表の定数を返す魔法陣を描くわけだが……


「どうにか回路を小さくして楽できないものか」


 正弦サイン余弦コサインは45度を境に対称的な値をとる。両方の定数を描く必要はなく、まとめることで手間を省くことができる。これは誰もが考えるところだろう。


 整数部については正接タンジェント以外では定数に書く必要がないだろう。余弦コサインの0度のときは1になるが、こういう部分は特別扱いしてしまえばいい。正弦サイン余弦コサインは分数部20桁だけにして余弦コサインの0度は例外的に取り扱おう。


 整数部が必要になるのは正接タンジェントだ。整数部7桁、分数部20桁の合計27桁で三角関数表を作ると、最上位の桁は89½度は1で他は全部0となる。三角関数表は½度刻みとするから180の定数を並べなくてはならない。1桁減らせれば180個描くものが減るのだ。正接タンジェントの89½度かどうかを判断して、最上位の桁を返す方が楽だ。





 ……思えばこのぐらいにしておけば良かったのだ。シンプルに定数の羅列を書くのと、凝った魔導回路を描くのと、どちらが良いのか。


 凝り始めた私は正弦サインの0度から29½度までの値が½より小さいことに目を付けた。これは2進数で分数を表した時に、1桁目が0か1かの境目となる。定数で描くよりも、分岐を魔導回路で条件分岐したほうが楽なのではないか? と考えてしまった。さらに、2桁目が0となるのは0度~14度、30度~48½度の範囲である。さらに3桁目は――


 こうして定数を返すだけのシンプルな魔法陣のはずだったものが、複雑怪奇な魔法陣となっていった。アルミン院生に作業の補助を頼むはずが、回路を複雑化させてしまったことで分業を困難にしてしまっていた。


 そして、動作確認テストを行う段階となって、ただの定数を返す魔法陣なら動作確認が非常に単純で簡単だったものが、変にロジックを組み込んでしまったがために、むしろ労力がよりかかるものとなってしまっていたことに気づく。楽をするための努力が、むしろ苦労を呼び込んでしまっていた。


「ちくしょう! ここの設計間違ってるじゃないか!」


 楽をするために組んだはずの回路に誤りが見つかり、楽をするどころか完全に裏目に出てしまっていた。ああ、どこで道を誤ったのか。いや、分かっている。踏み外した場所がどこであったかは分かっている。


 今決断しないといけないのは、ここまで進めてしまったものを、引き返すか、無理やり押し通るか? ということであった。


----------


 損切を迫られるアラン先生。無事損切りすることができるのか、コンコルド効果となるのか!?

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る