数学のプログラムでの役割
唐突な内容だが、ここ最近プログラムについて考える機会が増えた。ふと考えたことがある。
理論的な内容である数学はプログラムに対してどのような役割があるのだろうか?
自分なりの答えとしては、プログラムの短縮化である。
メリットとしては、短縮化することでプログラムでなされる計算速度は上がり、便利な製品を作ることができる。
簡単な具体例を考えてみよう。例えば100円の商品を買ったときの消費税を含めた商品の値段を表示させるプログラムを考えてみる。
要するに100円の8%増しを計算しろってことだ。
1、まず100円の8%を計算する。
100×0.08=8
2、続いて上の結果を100に加える。
100+8=108
この方法では2ステップで求めている。1度で求められないだろうか?
そこで2の式の8に1の計算式を当てはめてみる。
そうすると
100+(100×0.08)=108
ここでいったん上の式に表れている数字の意味等を忘れて、式を変形してみる。
(意味を忘れることを抽象化というが、これも数学における強い武器である。)
上の式の左の式(100+(100×0.08))を変形すると、
100+(100×0.08)=100+100×0.08 (かっこをはずす)
=100×(1+0.08) (100でくくる)
=100×1.08
つまり
100×1.08=108
となる。まとめると、100円の商品の消費税を込めた値段は単に1.08を掛ければよいことになる。
意味を考えて、抽象化した式を変形すれば1ステップで求まる方法が手に入る。
この例はごく単純なものであるが、複雑になればなるほどこの恩恵は強くなると思う。
AI時代の昨今、高校で習った公式たち(正弦定理、余弦定理、平面幾何学の公式)はこのような形で様々なところで活用されているのかもしれない。