数学をどこまでもどればいいのか… への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 たかくん  (社会人) 投稿日時 2010/7/23 09:31:23
おはようございます。

返信が遅くなってすいません。

中学の数学をやりなおしてみます。

プログラミングの能力そのものがまだまだ経験不測なんだと感じました。

このサイトの人たちは心ある方ばかりで投稿しやすいです。

ありがとうございます。

また利用するときはよろしくお願いします。
投稿者 キューピット  (その他) 投稿日時 2010/7/20 18:17:03
図形を扱うソフト、ドゥロー系と言いますか、あるいはCAD似たソフトの場合、
最低、古典的な言い方をすれば、Window/ViewPort変換ぐらいは理解しないと。
今はそういう言い方をしないから、任意の定義座標を画面に表示する、とでも言いますか。
拡大/縮小は当然の事、(実は、汎用関数として公開されているでしょうけど、)
これが解らない場合、お薦めしません。二次元座標回転もですね。
CADの場合は、部品定義とかサイジングとか、固有の考えがありますから、これを除外して、
つまりCADまで考える必要は無いでしょうけど。
三次元まで考える場合、3D座標回転マトリクス、さらにパース変換が解る事が必要でしょう。

突き放した言い方と受け取られるか、主宰者の意図に反して優しさが足りないと取られるか、
このあたり何とも言えませんが、個人的には、向き不向きがあるように思いますから。
投稿者 流れ者  (社会人) 投稿日時 2010/7/20 17:06:16
こんにちは。

たかくんさん。

質問の内容から判断するに、グラフィック描画機能があるプログラムを作っている中で、表題の疑問にたどり着いたのでしょうか。

でしたら、数学の勉強をし直すより、グラフィック描画処理が書かれた書籍を手に入れた方が良いと思います。
他の方がおっしゃっているように、現実のプログラミングで高度な数学知識が必要なことは稀で、ほとんどが、中学レベルまでの知識で間に合うことが多いです。

るしぇさんがおっしゃっているように、質問の内容が漠然としているので、具体性のある回答ができず、申し訳ございません。
投稿者 るしぇ  (社会人) 投稿日時 2010/7/20 14:32:16
数学も自然の中にある法則を計算式にしただけであって、
目的ありきです。何がしたいのか、それに必要な知識を
選択する必要があります。

> グラフィックやアルゴリズムに関連した所
それでは範囲が広すぎます。
減色する為にも色の平均をとるものから、最小二乗法で
近似するものまであれば、ここですべて上げられるもの
ではありません。

そのレベルで回答するなら、微分・積分は自然に存在
する数値を分析するのに良く出てきます。統計学の
手法も出てきます。
基礎だけでも
http://imagingsolution.blog107.fc2.com/blog-entry-147.html
とか。

ただ、難しいと言いつつ、やってる事は決まったお約束事
なので、目的に応じた手法が決まってるなら、勉強する
のは概要だけで済むこともありますね。
応用して新しい手法を生み出すのでなければ、敢えて深く
までは触れないようにする事もできるでしょう。

> ロジックだけでは解決できない限界を感じてます。
そこを具体的に例を挙げてもらえればアドバイスがあるかも
しれません。これだけの説明では何も伝わってきません。

> グラフィックやアルゴリズムに関連した所とそれに
> 必要な基礎学力を提示していただけないでしょうか?
これこそ、
> 多分すべての数学カリキュラムが必要だとは思えないので
と同じ理由で全てのグラフィックやアルゴリズムに関連した
知識が必要とは思えません。
投稿者 るきお  (社会人) 投稿日時 2010/7/20 13:25:09
こんにちは。

よねKENさんも書かれていますが、
何がしたいかによって必要な知識の領域が変わってくると思います。

一般的なプログラムならほとんど数学の知識はなくてもOKとおもいます。
小学生レベルの計算力があればいいと思いますよ。

アルゴリズムはたしかにでてきますが、数学的な力で構成していくアルゴリズムは
かなりレアで、だいたいプログラムの考え方から構成されるアルゴリズムになると思っています。
前者の例:マクローリン展開で円周率を求める、フーリエ解析で音素分析
後者の例:ソート。検索。プログラムのフロー的なもの。

アクションゲームなどを作るのであれば、高校レベルの数学の知識は要りますので、
自信がないなら中学校の一次関数や因数分解あたりから勉強した方がいいかもしれません。
そうでなければ、数学を気にするよりもよいサンプルにふれて経験をつんでいけばいいと思います。

あと、「必要は発明の母」とも言いますし、どうしても作りたいプログラムがあって、
数学の知識が必要になったら、強力なモチベーションでスポット的に乗り切ったりできて、
またそれが経験になったりすると思います。
投稿者 よねKEN  (社会人) 投稿日時 2010/7/20 13:13:03
私も数学も物理も苦手(でも、嫌いというわけじゃない)で似たようなことを感じて、
ちまちまと再勉強をしていますが、そう簡単ではないですね。

> 算数や数学は積み重ねだと思うのですがどこまで戻っていいのか解りません。

あなたの理解できている最後のところ以降から勉強する、じゃないでしょうか。

別のアプローチとしては、ゲームを作る本などで数式などのわからないことが出てきたら、
そこを出発点として、それを理解するために必要なことを順に戻って調べていく、
という方法もあるかと思います。

でも、習得する内容というのは個々に独立したものではなく、それまでの積み重ねの上に
成り立っている部分が多いと思いますので、こういった教科がもともと得意でない場合は、
理解できなくなったところから勉強を再開する、というアプローチの方がよいと個人的には思います。

> 多分すべての数学カリキュラムが必要だとは思えないので
> グラフィックやアルゴリズムに関連した所とそれに必要な基礎学力を提示していただけないでしょうか?

何が必要かは何を実現したいかによりますので、一概にこうとは言えないと思います。
今、何がしたくて、何ができて、何ができませんか?「なんとなくわからない」ではなく、
何がどうわからないのかを分析してはどうでしょう。

たとえば、アクションゲームを作るなら、1次/2次関数、三角関数は基礎知識でしょうし、
その上で、物理の力学の公式等が必要になると思います。
その手の解説を理解するためにはベクトルの考えも必要かもしれません。
それどころか複雑な動きをさせたいとなると大学の高度な数学・物理が必要になってくる場合もあります。

例としてあげた「複雑な動き」の場合でいうと、簡単に理解できるものでもないと思いますので、
そういうことを実現しているライブラリを使うことを視野に入れて、そのライブラリを
使う上で必要な数学・物理の知識を仕入れていけばよいと私は考えています。

投稿者 たかくん  (社会人) 投稿日時 2010/7/20 11:16:16
こんにちは、初めて投稿します。
プログラミングが好きでVisualBasicやC言語をやってますがゲームを作る本やアルゴリズムの勉強をする時必ず引っかかるのが数学です。
学生が終わってもう15年経ちます。
算数や数学は積み重ねだと思うのですがどこまで戻っていいのか解りません。
四則演算をたくさんやって計算力を養うところからやらなければ駄目でしょうか?
ちなみに学生の時は算数も"頑張ろう"でした。
多分すべての数学カリキュラムが必要だとは思えないのでグラフィックやアルゴリズムに関連した所とそれに必要な基礎学力を提示していただけないでしょうか?
ロジックだけでは解決できない限界を感じてます。
よろしくお願いします。