🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

3回答

1390閲覧

プログラミングに数学は必要ですか?

退会済みユーザー

退会済みユーザー

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

4クリップ

投稿2021/02/11 17:25

プログラミングに数学は必要ですか?
teratailのキーワード検索のところで"数学"と検索すると、"数学は必要ですか?"という質問が大量に出てきて、"必要です"という答えが大半ですが、いつ使うのでしょうか?
数学にも、いろいろな分野がありますがどの分野が必要なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/11 21:27

あなたにとって「プログラミング」とは
hentaiman

2021/02/11 22:32

知らなくてもその分野を開発するようになれば必要に迫られて勉強するから義務教育レベルの内容を理解出来る能力があれば絶対に問題無い ここで出来ないって諦めるやつは自分には合わない難しい無理ですとか言って逃げる奴だけ フレームワークレベル(pytorch)のものを作ろうとすると研究職側になるので、誰かが用意してくれた数学の勉強の仕方ではなく自分で考えて数学を使う必要があるので数学の理解が必要
退会済みユーザー

退会済みユーザー

2021/02/11 22:43

作るプログラミング 趣味程度のもの あなたにとって「プログラミング」とは そんなにも極めていないので分かりません。 hentaiman様 ご丁寧な回答ありがとうございます。
hoshi-takanori

2021/02/11 22:50

暗号はガチ数学が必要でしょうね。がんばってください。
m.ts10806

2021/02/11 23:02

そういう意味ではなくイメージを聞きたかったんですが。 逆に「極める」というのが無理なジャンルの1つなので、あしからず。
Zuishin

2021/02/11 23:03

暗号化するだけならライブラリがあるので特に数学は必要になりませんが、新しい暗号を開発するには世界でトップレベルの数学知識が必要になります。なぜなら暗号開発は PC に詳しい人が片手間でやっているのではなく、一流の数学者たちが本業として行っていることだからです。
hentaiman

2021/02/11 23:18

> 作るプログラミング 趣味程度のもの 訊いたの自分じゃないけどそういう事を聞きたいんじゃないと思いまっせ。 Twitterみたいなの作りたい!→いらない 抗ウィルス薬の研究(特定のタンパク質だけを人体に害なく効率良く破壊出来る方法?)をしたい→幾何学いる ※数学も医学もよく分からんのでタンパク質とか幾何学とかはテキトーに書きました
fana

2021/02/12 03:11

なんだろう,鍋料理に野菜は必要ですか? みたいな.
Zuishin

2021/02/12 05:14

> teratailのキーワード検索のところで"数学"と検索すると、"数学は必要ですか?"という質問が大量に出てきて、"必要です"という答えが大半ですが、いつ使うのでしょうか? その回答か、もしくはその回答のついた質問に必ず書いてあるはずなのに、自分の読みたいところしか読んでいないので把握できていないんでしょうね。 数学よりも前に国語力が必要だと思います。
guest

回答3

0

ベストアンサー

結論から言うと、プログラミングする分野によります。数学を使う場合、使わない場合、両方あります。

例えば、一般的なWebアプリケーションや業務システムであれば数学の知識が一切なくても作れる事も多いと思います。
スマートフォン向けアプリも(種類にはよりますが)不要なケースも多々あります。

一方で特定の用途向けのアプリケーションやゲーム等、またはそのアプリケーションに使用されるライブラリ(プログラムを構成する部品のようなプログラムです)を作るには数学が必要な場合が多くあります。

例えば2Dのシューティングゲームを作るのであれば、弾幕や演出に、三角関数やベクトル計算が必要ですし、3Dグラフィックが必要なのであれば線形代数などの知識も必要になってきます。

また、音声や画像を扱うソフトウェアであれば、場合によっては音声や光は波ですから物理の知識が必要になり、その物理の分野に伴う数学的な知識(例えばフーリエ変換とか)というのが必要になってきます。

コンピュータグラフィックスを扱う分野だと、普通に高校生が習っているような多項式は、曲線を描写する処理のプログラムに良く使われるそうです。例えば、工業製品のデザインを行うソフトウェアやイラストソフトで描写されている曲線を表す処理は、高校生が数学の授業でよくやっている2次関数や3次関数の延長線上にあるそうです。

最近流行っている機械学習(AI)系のソフトウェアは、仮にフルスクラッチで一から作ったとすると、統計学の知識が必要になり、それに伴い、微積分や線形代数の知識は必須になります。

暗号化や復号化(暗号化したデータを元に戻すこと)するようなプログラムであれば、暗号理論というものを理解する必要がありますが、このバックグラウンドとなっている数学の知識(統計学や、確率論、素因数分解、楕円曲線など色々)も必要です。

経路案内をしてくれるようなアプリを作るには、組合せ数学/グラフ理論を知らなければ作れません。

物理シミュレーションなんかもそうですね。物理の知識+それに伴う数学の知識がないと、プログラムは書けないはずです。富岳での新型コロナ飛沫のシミュレーションなんかも最近話題になりましたね。
https://monoist.atmarkit.co.jp/mn/articles/2012/08/news007.html

あとは、数学そのものがプログラミングの対象になったりすることもあります。定理証明支援系という数学者が数学の証明を支援するプログラムというのもあります。また、mathematicaと呼ばれる数式の計算(例えば微積分とか方程式を解くとか)をしてくれるようなソフトウェアもあります(これは数式処理システムと呼ばれます)。まぁもっともこれらは極端な例ですが。

挙げれば他にも色々と出てくると思いますが、ざっと並べてみても、色々あります。
まぁ、ただ、世の中の大半のプログラミングの対象はWebアプリケーションであったり、業務システムだったりするか、提供されたライブラリを使うだけという事が多いので、実際のプログラマがバリバリ数学を使いこなしているかというとそうではないと思います。

ただ、知っていれば作れるアプリケーションやプログラミングの幅が広がる、というのが実際のところです。

投稿2021/02/11 18:40

編集2021/02/11 19:00
yuwki0131

総合スコア160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/11 22:46

yuwki0131様 大変丁寧かつわかりやすい回答ありがとうございます。将来は暗号化・復号化を頑張りたいので、きちんと数学を勉強します。本当にありがとうございました。
kaina

2021/02/12 00:12

この回答のどこに低評価をする要素があったのか知りたいので、低評価した人は理由を書いて欲しいです。
m.ts10806

2021/02/12 00:52 編集

>暗号化・復号化を頑張りたい 「独自でそういう仕組みを作りたい」ならまだしも、ほとんどの言語で提供されてる仕組みなので、数学が必要なものには思えません。 自作にしても法則と規則を決めておくだけなので、どこまで考えてるかは別として、はたして数学と言えるかどうかは…(低評価したのは私ではないです)
m.ts10806

2021/02/12 01:05 編集

あいや、突っ込みたいことが正確に書けてない。 そもそも自作しなければならないような仕組みを考えてるのか?という点は気になっていて、そうなると、既存の仕組みを解読とかという話にもなってきそうに思うのですけど、そこまでの話? 今までの質問からは全くつながってないように見える
hentaiman

2021/02/12 02:59

> 将来は暗号化・復号化を頑張りたいので、 質問本文に含めて書いておいてくれれば必要と回答するだけで済んだのに
kaina

2021/02/12 04:48

>「独自でそういう仕組みを作りたい」ならまだしも、ほとんどの言語で提供されてる仕組みなので、数学が>必要なものには思えません。 成程、確かにそうですね。 低評価した本人では無いということですので、この部分なのかは不明ですが、その可能性は高いかな。 後、質問者さんに対してですが、質問者の過去質問内容を拝見しましたが、数学の勉強より論理的思考力を鍛えたほうが良いと感じました。 数学はyuwki0131さんが書いている通り、プログラムの分野によっては使用しませんが、 論理的思考が出来ないと碌なプログラムが作れません。
退会済みユーザー

退会済みユーザー

2021/02/12 13:31

hentaiman様 >>申し訳ございませんでした。 kaina様 >>全くその通りです。
guest

0

必要ですよ。

知っていて使っているか知らないで使っているかは別として、例えば条件分岐では集合の概念を必要としますし、テスト計画を立てるには証明の手法を取り入れる必要があります。

他にも使いどころは多数ありますが(学問として体系的に修める必要があるかどうかは別として)プログラマーが仕様からコードに落とすにあたって数学は必須です。

投稿2021/02/12 02:17

編集2021/02/12 02:18
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのプログラムで何を作成するか によって様々だと思います。
私の経験ではデータベースを使用した会計ソフトや会員管理系のものが多かったので、売上計算などお金にまつわる計算式が多かったです。またアプリ画面のサイズによって表示を操作するなどの場面でも比率を計算したりしました。
ゲームなどの分野では三角関数など使用すると思います。

投稿2021/02/11 17:59

tk5000

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問