- ベストアンサー
プログラミングと数学の関係
友達から「数学が得意な人はプログラミングに向いてるよ」といわれ、 特に数学的な考え方が必要だからともいわれました。 どのあたりが向いているんでしょうか? また、それはどういったプログラムを組むと実感できるのでしょうか? なにか具体例のようなものを教えていただけませんか? よろしくお願いします。m(_ _)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えばAとB(A<B)の最小公倍数Gと最大公約数Lを求めるというプログラムを作るとします。 この場合、数学の知識が無ければGとLをそれぞれ求めることになります。 しかし、AB=GLが成り立つという数学の知識(数学といえるかは微妙ですが)どちらかさえ求めれば、という式から、もう一方も求まるのです。この場合、AとBの組み合わせによっては1分以上差が出ることもあります。 プログラムは実行から結果が出るまでの時間が短いほどよいものです。数学の知識があり、数学的な考え方が出来るほど、プログラムを実行してから、結果が出るまでの時間を短縮できるのです。詳しくは知りませんが、ゲームによっては行列が使われていたりもするそうです。(何次かは知りませんが)
その他の回答 (2)
- ymmasayan
- ベストアンサー率30% (2593/8599)
もちろん、数学が出来るに越した事はありませんが、 それよりも、コツコツと場合分けをしていくような人の方が向いて いるようです。 話は飛びますが、最もすぐれたプログラマ(システムエンジニア)は法律をやって いる人だそうです。世の中のしがらみを法律と言う形で、出来るだけ短く明解に表現するからです。
向いているかどうかというのは、精神的な部分が大きいと思います。 たとえば数学で証明をする場合、基本的には1箇所の間違いも許されません。 例外はありますが、1箇所間違えば全体が破綻します。これはプログラムでも全く同じことが言えます。 こういった事をやり続けるには、それなりの適正が必要なのかもしれません。 あとは、No.1 の方が言われているとおり、プログラムは読みやすさを損なわなければ、無駄が無ければ無いほど良いということです。その時に数学的知識が役に立つことは多いです。 極端に言えば、掛け算を知っている人と知らない人では、整列した物を数える効率が違いますよね? ほとんどの場合、高度な数学の知識は必要としないと思いますが、NASA で使うようなプログラムを作るとすれば、物理と数学の知識は極めて高度なものが要求されるでしょうね。