
プログラミングって本来数学的な計算をする為のものではないのですか?
学校で配られたFortran90/95という言語の教科書の演習問題を見ると、数学的な問題が凄く多いです。
例えば台形公式・シンプソン公式による数値積分や、フィボナッチ数列の漸化式、二分法やニュートン法など、数学のアルゴリズムをプログラミングで表現させようとする問題が多いです。
ITエンジニアに算数以上の数学は使わないと聞いたのですが、実際自分がやってることは数学だらけです。
この参考書がたまたま数学よりなだけであって、本来プログラミングは数学とはあまり関係ない分野で使われるものなのでしょうか?
A 回答 (11件中1~10件)
- 最新から表示
- 回答順に表示
No.11
- 回答日時:
古い時代の言語は「得手不得手」がはっきりしていることがある. 例えば Fortran はもともと「数学的な問題」のために作られた言語なので, その「教科書」の演習問題として「数学的な問題」を出すのは自然なこと. ある意味「数学の教科書の演習問題に数学的な問題が出るのと同じくらい当然. 逆に COBOL は「事務処理」向けに設計されたので, 数学的な問題は出しにくい. 特に最初期の COBOL だと, ちょっと複雑な式を書こうとするだけでおそろしく面倒くさい (今はまし).
よだんだけど, 最初の「プログラミングって本来数学的な計算をする為のものではないのですか?」という文章は「プログラミングは本来数学的な計算をするためのものだと思うんだけどなんか違ってるような感じがする」って意味に解釈するような気がする. その点でいえば「数学的な問題が凄く多い」「数学だらけ」であることを疑問に思うのはおかしいんじゃないかな.
No.10
- 回答日時:
最初のコンピューターは、砲弾の飛び方、つまり、運動方程式の数値計算をするために作られたはずです。
技術の発展は軍事から。このように、当初は科学技術計算をするのがメインでした。その後、これは便利ということで、お金の計算もするようになりました。この頃は、文字を打ち込んで文字が紙に印刷されるだけで、今でいうモニターに相当するものも無かったです。それから時は流れ、モニターに文字が映るようになり、文字だけじゃなくて点の集まりの画像も表示できるようになり、カメラで撮った画像も入力できるようになり、、、、と、入出力装置の進歩や、処理速度向上などで、いろいろなことに使われるようになっています。
Fortranはもともと科学技術計算用に作られた言語なので、その教科書の例題は科学技術計算が多いのでしょう。もちろん、文字列処理や、人工知能的な処理もやろうと思えば可能です。
No.9
- 回答日時:
もともとそういう目的で作られたけど、いまでは「本来」
では有りませんね。
現在のプログラミングの用途の90%お金の計算です。
だからITエンジニアの学ぶべきものはまず簿記。
「前受金」やP/LやB/Sの意味がわからないエンジニアは
はっきり言って、一般的なソフトハウスでは
使いものになりません。
No.7
- 回答日時:
違います。
FORTRAN計算をするためのプログラミング言語なだけです。逆にCOBOLはビジネスアプリを開発するための言語です。
初期のコンピュータでさえ用途別にプログラミング言語があったのです。
No.6
- 回答日時:
> プログラミングって本来数学的な計算をする為のものではないのですか?
うん。
歴史的に言うとその通り。
平たく言うとコンピュータ自体が弾道計算する為に作られた、って事だね。
> 例えば台形公式・シンプソン公式による数値積分や、フィボナッチ数列の漸化式、二分法やニュートン法など、数学のアルゴリズムをプログラミングで表現させようとする問題が多いです。
そうね、そういうトピックを扱う良心的な学校もあるでしょう。
ただし、一言言っておくと、元々コンピュータ自体が上に書いた通り、弾道計算を高速にやるために作られてる。
つまり、
> 台形公式・シンプソン公式による数値積分や、フィボナッチ数列の漸化式、二分法やニュートン法
はプログラミング初級者向けのトピックとしては「合ってる」のよ。一番優しい。なぜなら「元々目的に合致する用途」だから。
そして貴方は、と言うより基本的には「誰でも」、アルゴリズムを発明する事は「出来ない」。
言っちゃえばアルゴリズムを「作る」のはプログラマじゃなくって数学者の仕事なんだよな。
って事はだせ?基本「貴方は何も考えなくて良い」んだ。レシピに書かれたようにプログラムを「書き下す」。貴方の役目は「アルゴリズムのレシピ」を「プログラミング言語での記述」に変換する事だけ、だ。
これはね、初級者用教材としてはすごくいいんだよ。「考える必要がない」ってのはバカにしてるように聞こえるかもしんないけど、「翻訳・記述に集中出来る」って意味では最高の教材なんだよな。
個人的な意見では、初心者に「なんか作れ」と言うより「数学的なアルゴリズムをプログラミング言語の記述へ丸写し」の方がコツを掴むのが早いと思う。対応するデータも数値だけ、だしな。文字列だ何だって余計なデータ型を扱わずに済む。
そして大方勘違いしてるけど、別に「数学を理解してる」必要もないんだ。「単に言われた通りにプログラムを書き下せばいい」って意味では捻りもクソもないし、テクニック的に差がそれほど付くわけでもないんで、マジでプログラミング初心者用教材としてはサイコーなの。みんな「数学的アルゴリズム」っつーんで、「難しい」って捉えがちなんだけど、実は一番簡単なトピックなんだ。
これが初心者向けに「プログラム弄くって動的サイトを作りましょう」とかなったら途端に暗礁に乗り上げるヤツが続出するから。マジだよ?
なお、FortranはFormula Translation(数式変換)の略称なんでこれも意図に合ってます。
> 本来プログラミングは数学とはあまり関係ない分野で使われるものなのでしょうか?
と言うより、1960年代に入るか入らないかの辺りで、コンピュータの研究者の興味が「コンピュータと人間の応答/やり取り」に興味が出てきちゃったのね。「人間のように考えるプログラムを作りたい」と言う野望が出てきちゃった。
その辺で文字列処理を中心に考えてく、って風に興味が移っちゃったの。
大きく言うと、今はその「1960年代辺りにメジャーになったコンピュータの使い方の研究」の延長線上にいるよな、って話かな。
要するに、弾道計算だけじゃ飽きちゃった、って事だ(笑)。
そしていずれ貴方もそうなるだろうけど、とりあえず最初に、プログラミングの入口として、数学的計算(数値計算)を扱うのは、歴史的に見ても正しいかな。
No.4
- 回答日時:
鋭い指摘ですね。
自身、30年前にSEしてました。まだ、インターネットも研究段階で一般庶民には無縁の時代です。
フィボナッチ数列、ニュートン法も知らなくても業務出来ました。が、2進数、16進数、キロバイト、メガバイト等は知らないと業務出来ませんでした。
新入社員教育の一貫で、基本情報試験の前身である第二種情報処理技術者試験を受けるのが必須でした。その中のプログラミングをFORTRANを選ぶと、漸化式などの数的問題もあったような気がします。COBOLを選ぶと、レコード長やファイルのマッチングなどで、高校数学II以降の範囲とは違う内容でした。
自身の会社ではCOBOLを推奨していました。
また、工学部出身です。研究室等ではシミュレーションのために数的プログラミングはしましたが、事務処理プログラミングでは四則演算が主でした。
No.3
- 回答日時:
当たっているような当たってないような・・・・
そもそもコンピューターというものが実用化されたのは
第2次大戦前頃から、大砲の弾道計算を行う目的によるものです
それまでの経験と勘によるのではなく、数学的な計算で正確な砲撃を行うため
ですから当初のコンピューターは数学的な計算をより早くより正確に行うのが主目的でした
そしてフォートランという言語はその数学的な計算の為に開発されたコンピューター言語です
対してCOBOLは、事務処理的なデータの大量処理向けのプログラミング言語です
目的に応じたプログラミング言語を用いるのが鉄則でした
今はコンピューターの能力も高いですし、プログラミング言語も何々向けという専門的なモノでは亡くなりましたけどね
と言うことで、Fortranを学習していると『プログラミングって本来数学的な計算をする為のもの』という風に感じるのはある意味当然ですけど
でも、それだけって訳でもありません
ご回答ありがとうございます。
なるほど…元々プログラミングは弾道計算の為に開発されたのですね。
また、COBOLといった事務処理用の言語もある事から、プログラミングは計算に限らずさまざまな用途に応じて使われるツールだという事が分かりました。

No.2
- 回答日時:
プログラミングは結局のところ分野に関係なくやりたいことを数値演算で表現する技術ですが、スマートにこなそうとすれば三角関数や微積分を使用する場合もあるでしょうから、やはり算数を越えた高校レベル程度の数学のセンスも多少は必要だと思います。
ご質問中の各種計算プログラムですが、これらはあくまでプログラミングで出来ることの一つの例にすぎません。この様な使途に使用するプログラムの開発には更に高等な数学の知識が必要ですが、それはそういうことを知っている技術者がやればよいだけの話で、全てのIT技術者に必須の知識ではないと思います。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 数学 大学数学を理解するためには高校数学の全単元を復習する必要がありますか。 5 2023/02/28 13:37
- 就職 情報学科やIT企業の関係者の方にお聞きしたいです。 2 2023/08/01 08:55
- 数学 【大至急】数学のレポートの問題なんですが分からないので是非教えていただきたいです!本当にお願いします 5 2022/07/25 06:52
- IT・エンジニアリング IT業界ほぼ未経験で28歳からインフラエンジニアになれますでしょうか 7 2023/05/04 17:41
- その他(形式科学) 代数分野と幾何分野では同じ数学でも求められる能力が違いますか? 中学受験の時から何故か図形問題はずば 2 2023/03/23 18:19
- 高校 勉強ができない。 4 2022/07/03 08:13
- 数学 数学の勉強とは数学の公式を覚える事ではないですから、数学の試験では高校数学公式集を見ながら試験を受け 14 2022/06/22 11:22
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学、プログラミング、物理、...
-
アセンブリ名とは??
-
OpenCVで音声は扱えるか
-
作業工程 SDとMD
-
Visual Studio Codeについて
-
PL/Iについて
-
C言語を用いたプログラミングに...
-
MFCとC++/CLIとの比較
-
プログラミングの雑談がしたい...
-
VB.NETとInputManについて
-
宣言の構文エラーが出ます。
-
C言語を使ったビンゴマシンのプ...
-
C++で表示したグラフをbmpやjpg...
-
エクセルVBAでRS232Cへ
-
CSVデータの"(ダブルクォーテ...
-
プログラミングで詰まった時っ...
-
パスワード認証のCGIのやり方が...
-
コマンドプロンプトについて。
-
プログラミング
-
MATLABでの不連続グラフについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アセンブリ名とは??
-
リピート再生が出来ません
-
procってなんですか?
-
Visual Studio Codeについて
-
PL/Iについて
-
exeファイルを作ったり改造した...
-
VBA フォルダ アクセス権限付与
-
VBAプログラミング
-
CSVデータの"(ダブルクォーテ...
-
push any key で終了する方法?
-
作業工程 SDとMD
-
OpenCVで音声は扱えるか
-
プログラミングを使ったYoutube...
-
PHPやJavaで料金シュミレーショ...
-
Cで本格的なプログラムを作りたい
-
Delphiでxmlファイルを読み込む...
-
図形の中心の取り方を教えてく...
-
エクセルVBAでRS232Cへ
-
C言語を学ぶうえでの古典的な名...
-
IT業界より楽に稼げる業界って...
おすすめ情報