エンジニアに数学が必須なのに不要と勘違いする理由
結論:数学を知らないから
数学の基本三分野は以下の通り
代数学
幾何学
解析学
概ね、これらが複雑に組み合わせて構成される。
そして彼らが数学と思っているのは幾何学と解析学だけなのだろう。おおざっぱにいうと微積分と行列と複素数と対数かな。
そこで基本のプログラムを書いてみると
int f(int a,int b) {
return a + b
}
main()
{
int a, b, c;
a = 1;
b = 2;
c = f(a, b);
printf("%d\n", c);
}
f(a, b) = a + b = c
関数がない言語のほうが珍しい。つまり代数学を使用しないでプログラムを書くのは不可能。
思い切り数学が出てくる。二次配列の計算も行列。
ITにおける基本の数学
別名、情報数学、計算機数学と言うらしい。便宜上、分けてみたが当然、複数分野が組み合わせて出来ているため分類は便宜上。
代数学 → 関数、変数
論理数学 → 集合論、命題論理、述語論理
AかつBならCをしろと言うロジック
プログラムはロジックと計算の集合
検索エンジン
離散数学 → 整数論、グラフ理論、状態遷移法、確率、統計、離散変換
999円の品物に8%の消費税をかけた時、小数点以下はどう処理する?
東京駅に行くための最短経路は?
圧縮、暗号化のアルゴリズムなどに使われる(離散コサイン変換、ハフマン符号、RSA……)
ノイマン型コンピュータは二進数でしか処理出来ないため、画像処理、音声処理などでは必須
幾何学・解析学 → 複素数、四元数(交流、3D)、ベクトル、三角関数、微分・積分……
幾何学はハードウェアや3D、画像処理に於いて多用するが、ソフトウェアのビジネスロジックの実装には滅多に使わない。しかし、お金の計算は離散数学だ。需要の多いビジネスロジックばかりやっていて、ゲームや画像処理をしないなら幾何学は使わない。——と書きたいところだが、地図を扱うと思いっきり幾何学が入ってくる。
集合論は、数学用語で書くと覚えることが多く用語も厳密なので現実ではそのまま使われないが普通に使う。2022年に入社した従業員のうち年内に退職した人を抽出するとか言うのは集合論の応用だ。純数学との違いは数式を書かず数学用語を使わないだけ。和集合や積集合などという単語はわすれても普通に使っている。ほぼ情報処理技術者試験専用用語。仕事に於いてプログラムは仕様通り動けば良いのであり、数学的に正しいロジックであると証明する必要はないし用語の正確性よりコードの正確性の方が重要。
検索がまともに出来ない存在が多数いる理由が分かってきたぞ……。集合論を理解していないからか。集合論を理解しないとWeb検索すらままならない。ついでに集合論は論理的思考の中核に位置する。検索が出来ない=論理的思考が出きない。
要するに普段使って居るものが数学だと知らないだけと言うオチ。あまりに数学が嫌いすぎてツールとしての数学を認知出来ないのかも。
この記事が気に入ったらサポートをしてみませんか?