うちの同居人はTASさんである。   作:アークフィア

41 / 728
プログラムは数式である

「虚数iとは、二乗するとマイナスになる数字。実数に対して()()()()()()だから、虚数」

「ああうん、そこはちょっと聞いたことあるかも」

 

 

 虚数。それはお互いを掛けるとマイナスになる、という特殊な数字である。

 自然界にそんな数字は存在しないので、虚数と呼ばれているが……この数がもたらしたモノというのは、実は無くてはならないものとなっている。

 それが、電気工学における交流の計算と、プログラミングにおけるクォータニオン(四元数)だ。

 

 

「……なにそれ」

「詳しく知りたいなら調べて、ここでは簡単に要約するだけだから。──どちらも、大本の考え方は()()()()()()()もの」

「……どういうこと???」

 

 

 まぁ、わかり辛いのは仕方ない。

 虚数周りは『存在しない』という説明に踊らされて、その実態を掴めていないという人も多いわけだし。

 だが、これが数式を簡単にするために作られたものである、という話を聞けば、その意義もなんとなく掴めるだろう。

 

 例えば、平面上を移動するとある一点を示す式を作るとして。

 普通ならば縦の式と横の式、二つの式を作って表そうとするだろう。

 だが、例えば点の動きが複雑なモノであった場合、それを示す式というのはとかく複雑なモノになってしまう。

 平面だけならまだマシでも、それが三次元空間についての話になれば、複雑さは更に跳ね上がって行くだろう。……微分積分と聞いて、「うっ、頭が……」となる人は多いはずだ。俺も痛い()

 

 そこで使われるのが、虚数──そこから生み出された概念である複素数である。

 

 

「実数と虚数で示されるこの数字は、線分上に平面的なモノの表し方ができる。──波の性質を持つ交流なんかは、普通の計算だと煩雑になりすぎる。けど、複素数を使うと、単純な方程式にまとめてしまえるようになったりする。リアクタンスなどで顕著」

「りあくたんす???」

 

 

 わかり辛いかもしれないが、普通に数の大小で示されるスカラー量に対し、どちらに向いての力なのか、という要素が加わるベクトル量の計算に向いている、くらいに思っておけばいいと思う。……この時点で躓いた場合は知らなーい。

 直流は電圧の変化はないのでスカラー量、対して交流はプラスとマイナスが時間経過で入れ替わる──すなわちベクトルを持つ量である。

 その為、普通に計算しようとすると大きさと向き、その両方を求める必要があるわけなのだが……複素数を使うと、それらを一つの式の中で求めてしまえるようになる、みたいな感じ。

 

 ……まぁ、正直普通に生きてる分には意識することはないので、特定の分野では虚数とかを思った以上に活用しているぞ、くらいに思っておけばいいと思う。クォータニオンとか、三次元を四次元的に表す、なんて説明になるから余計わけわかんなくなるだろうし。

 

 そもそも重要なのはそこではない。

 ここで重要なのは、そういった煩雑な計算は普通に入力しようとするととても時間が掛かる、ということの方だ。

 

 

「例えば交流における電流を求める式、『I=CV0sin(ωt+π/2)』というものがある。これを単純に手打ちする場合、『sin』の部分は(エス)(アイ)(エヌ)と打つ必要性があるし、カッコ(())に関してもシフト(shift)キーを押しながら入力、みたいに細々とした手間が掛かる」

「……それが、どういう関係が?」

「一つの式ならそこまででもない。でも、プログラムというのは、そういう式が幾つも必要になるもの。──それこそ、この程度の手間が大きな時間ロスになってしまうほどに」

 

 

 通常、パソコンなどでプログラムを入力する場合、特別なアプリでも使わない限りは、普通に全部手打ちする、という形になる。

 三角関数や微積分、必要となる計算式が煩雑であったり普段は使わないような文字であったりする場合、それを入力するために必要な労力というものは嵩んでいくわけで。

 

 それが例えば、一行二行程度の話であれば、さほど問題にはならないかもしれない。

 けれどそれが、数百・数千行に及ぶプログラムであった場合、そうした細々とした手間隙というのは、本当に単なる手間隙で済むものなのだろうか?……というのが、ここでのポイント。

 

 プログラムを組む際、そうした『煩雑な式』というのは、結構な頻度で出てくるもの。

 またそうでなくとも、使うプログラム言語によっては何度も使うのにも関わらず、文字数の長い命令文……なんてものが存在することもある。

 そういった無駄が重なれば、プログラミングというのはいつまでも終わらないモノ、みたいなことになってしまう。長ければ長いだけ、ミスを誘発するのだから良いことなし、というやつだ。

 

 

「そこで登場するのがポケコン。これは、プログラムを組むのに最適化されている。関数電卓としての機能を持つので、『sin』のような特定の計算に使う文字はボタン一つで入力できるし。プログラムによっては頻出する命令文も、短縮形として許容してくれることも多い。パソコンに出力する時には変換機能もあったりするから、そういう意味でも便利」

「あー、うん。(よくわかんないけど)よくわかったよ。……で?これが私になんの関係があるの?」

 

 

 なので、端からプログラミング用であるポケコンというのは、ともすれば普通にパソコンとかでプログラムを組むよりも手早く出来たりする、なんてこともあるわけなのだ。

 ……まぁ、さっきから匂わせている通り、パソコンで使うアプリによっては、その辺りの機能を備えているものも普通に存在していたりするわけだが。

 でもまぁ、安くてここまで出来る、という点で利便性があった、というのは間違いでもない。

 

 ……そこまで語って。

 結局、これがCHEATちゃんとなんの関係があるのか?……みたいな疑問に戻ってくるわけだが。

 AUTOさんは既に気付いている通り、これが彼女にとって革命的なアイテムである、というのが今回のポイントなのである。

 

 

「──貴方には、これを使ってチートコードを作って貰う」

「……なんて???」

 

 

 そう、コード○リーク代わりに使うんだよ、これを!

 ……なに言ってるのかわからん、みたいな顔するのは止めよう、CHEATちゃん。

 

 

  1. 目次
  2. 小説情報
  3. 縦書き
  4. しおりを挟む
  5. お気に入り登録
  6. 評価
  7. 感想
  8. ここすき
  9. 誤字
  10. よみあげ
  11. 閲覧設定

▲ページの一番上に飛ぶ
X(Twitter)で読了報告
感想を書く ※感想一覧
内容
0文字 10~5000文字
感想を書き込む前に 感想を投稿する際のガイドライン に違反していないか確認して下さい。
※展開予想はネタ潰しになるだけですので、感想欄ではご遠慮ください。