こんにちは。
数学科出身のプログラマのさとるです。
エンジニアは数学は使わないと思っていないでしょうか。
僕の場合は実際に地図上の緯度経度を計算するプログラムを作る案件があり、
その時に三角関数を思いっきり使っておりました。
また、数学自体を直接使う場合はなくても、
数学の考え方を使ったほうがいい場合もあります。
例えば、数学的帰納法などは、
ループなど逐次処理を行う考え方のベースとなりますので、
知っておいて損はない考え方です。
数学的帰納法って何だっけ?って方もいるかもしれませんので、
かいつまんで説明すると、ドミノ倒しがわかりやすいです。
1.1つ目のドミノが倒れる
2.n個目(nは100でも1000でもいいです)のドミノが倒れるとする
3.n+1個目のドミノも倒れる
そういうわけで、今回は数学をもう一回やり直そう、
という方に向けて、お勧めする数学の本を3冊ご紹介します。
目次
プログラマのための数学(結城 浩 著)~プログラムと直結する数学の知識を入れたい方向け
この本はプログラムに直結する部分に絞って説明が行われている点と、
数学が多少得意な人でも読んでいて飽きない内容になっている点が素晴らしいです。
中学までの数学は大丈夫だけど、
高校の数学が怪しいという方にはぴったりくる1冊です。
論理的な考え方も含めて、
実践的なプログラムを作るために必要な数学の知識をブラッシュアップできます。
1冊持っておいて損はないですね。
エンジニアだけど数学が苦手な方で、
実践的な内容を知りたいって方はこちらは必見です。
先ほど例として出した数学的帰納法の話もこの本には載っています。
中学3年間の数学を10時間で復習する本(吉永 豊文 著)~中学の数学全般でつまずきやすいところを復習したい方向け
中学の数学もちょっと怪しいな、という方はこちらを読んでみてはいかがでしょうか。
ミスしやすいポイントを中心に丁寧に書かれている点が良いです。
そして、中学の数学を本当に理解できると、実は高校の数学は、
中学の数学の延長線上にあることもわかります。
例えば、関数で言えば、中学で習う1次関数(直線)、2次関数(放物線)の先に、
高校で習う3次以上の関数や指数関数などに当たります。
ですので、中学数学の基本を理解するにはこの本がいいでしょう。
ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming) ~ゲームプログラミングをされる方だけでなく、数学は物理とつながっていることを理解したい方にもおすすめ
先ほどまでの2冊とは異なり、
やや難しい内容となります。
高校までの数学がそれなりに理解できている方が読んでみるといいですね。
ただ、丁寧な説明はありますので、
手が止まらないという感じではないと思います。
実際のプログラムコード(C++など)もあるため、
使える方は実際に書いてグラフを書いてみるのもおすすめです。
また、物理と数学は密接に関係があります。
例えば、物理で言うところの運動方程式はまさしく微分方程式そのものです。
数学書としても十分使えますので、
ゲームプログラマに限らず、
高校数学を一通り思い出したいという方にもお勧めしたい本ですね。
終わりに 数学は頭の体操にもなる
プログラムを書くことは頭を使って考えることになりますが、
それは実は数学の問題を解くことに近い思考になります。
問題が目の前にあれば、
それに対する公式(プログラムであれば関数など)を適用することで、
解答を導き出す。
その過程が非常によく似ています。
そのため、数学をやるということは、
プログラムの技術の向上にもなりますし、
パソコンを離れて自分の頭で考える作業が、
頭の体操にもなります。
数学もぜひやってみてください。
コメント