初めまして。
今どの位の数学の知識をお持ちでしょうか?
また、どの程度まで数学が必要になるようなプログラミングをされるのでしょうか?
それによって回答もかなり変わってくると思います。
物理演算や、物理現象のシミュレーションを行うとか、3Dモデルをガンガン使っていくような
プログラムを組まれる場合はそれなりの専門的な知識が豊富に必要だと思いますが、
単に趣味で普通のプログラム、例えば何らかの簡単な計算をするツールであったり、
簡単なエディタを作ってみたり、2DのFFのようなゲームを作ってみたりという程度であれば
大げさな話、小学校の算数がわかれば充分だと思います。
それでも、これからの色々な可能性を考えて、何でも勉強していきたいと言う事でしたら、
プログラミングに関係ありそうな数学の分野を勉強していくといいと思います。
恐らく大学で習う範囲の数学で必要なのは(一般的に)線形代数だけだと思いますから、
とりあえず高校の教科書で勉強すれば充分ですよ。
YHさんが今どの程度の数学の知識をお持ちかわからないので、
どこから勉強すればいいという回答が出来ませんが、
さしあたり、三角関数などはいろいろと役に立ちます。
円周率が、ラジアンで180度を表すことや、
sin,cosの使い方などがあやふやでしたらその辺を勉強されたらいいと思います。
シューティングゲームではこの辺をバリバリ使います。
1秒間に何十万回とこの計算をしていると思います。
>ゲームプログラミングでは「余り」が重要であるとか
とお書きになっていますが、「余り」の計算の仕方はOKということでいいでしょうか?
7÷4は1あまり3ですね。つまり余りは1
9÷4は2あまり1ですね。つまり余りは2。
何故余りが重要なのかというと、よく増加するカウンタをループで使えるからです。
・・・といってもわかりにくいでしょうから、例を出します。
2Dのマップをテクテク歩いている画像をそうぞうして下さい。
止まってる画像→
右足を出している画像→
止まっている画像→
左足を出している画像→・・・
これを何度も繰り返してやれば歩いているように見えそうですね。
この画像番号を上から0,1,2,3としてやります。
0,1,2,3という番号を繰り返し
0→1→2→3→0→1→2→3→0→1→2→3→
とループさせる事が出来ればこの処理がうまくいきそうです。
ではどうしたらこのループが表現できるでしょうか。
今、これとは別に、無限に増加しているカウンタがあったとします。
0→1→2→3→4→5→ ... →1000→
のような感じです。
これを使ってループを表現出来ないかと考えると、このカウンタをxとすると、
x%4
つまり4で割った余りで計算出来そうです。
0を4で割ったあまりは 0
1を4で割ったあまりは 1
2を4で割ったあまりは 2
3を4で割ったあまりは 3
4を4で割ったあまりは 0
5を4で割ったあまりは 1
6を4で割ったあまりは 2
7を4で割ったあまりは 3
8を4で割ったあまりは 0
9を4で割ったあまりは 1
右側の実際に計算したあまりは0から3でループしていますね。
こうしてカウンタを用いて画像番号をループさせる事が出来ました。
このように、割った余りという考え方は非常に便利なんですね。
・・ちと説明が長くなりすぎました。
もう「そんなこととうに知ってる!」ということでしたらごめんなさい。
>不安というのは憑き物でして
確かに付いて・・いや憑いてまわりますねw
いや冗談です。
>数学的知識は、プログラミングを続けるに従い、身につくものなのでしょうか?
自然に身に付くものじゃないのでやはり勉強しないと身に付かないでしょうね。
「必要な時に勉強するスタイル」を続ける事で、
自然に数学がみについていくという考え方であればそのとおりではあると思いますが、
やはりいつかは勉強しないとそれは身に付かないと思います。
私はアルゴリズム系の本を買って一通り勉強はしてみたものの、
やはり「必要な時に勉強するスタイル」というのが私は好きです。
私も一通り、基本的な知識はみにつけなければ、とそれ系の本を端から
よんでみた時、そこに「ベジェ曲線」
http://ja.wikipedia.org/wiki/%E3%83%99% ... 2%E7%B7%9A
なるものが書いてありましたが、その当時は「なんのこっちゃ」って感じで
読んだだけでした。
こういうのは読んだだけではどうにも理解しにくいですよね。
しかしシューティングを作るようになってからこの計算方法がすごく素晴らしいことがわかり、この計算式を勉強しました。
興味持って、「習得しよう!」と思って勉強したので身に付きも速かったと思います。
逆に言えば興味も特に無い分野の計算式見ても、身に付きが遅いように思います。
きっと使える使えないが別として「知っている」ということは非常に大事でしょうから、
色んな本を読んでみる事は大事だと思います。
知っていたら、使えなくとも「あぁ、あれを使えばよさそうだな」と思えますしね。
ただ、一通りそれが済んだら色々と自分の興味のあるソフトを作りながら勉強していくのが良いと思いますよ。
・ ・・って長くなりすぎましたね。
肝心な本の紹介は何も出来ていませんがこのへんで^^;