• ベストアンサー

身に着けやすい、プログラム言語について

理学部の数学系の3年生です。 何かプログラミングを身に着けたい、と思うのですが、プログラム言語を身に着けたとして、数学ではどのように生かせるでしょうか。 思いうかぶのは、Prime95とか、整数の数値計算、それも割り切れるかどうか、といった問題で、解析の稠密な実数とかの計算では生かせない気がします。 Marhematicaは少し使えますが、自分でプログラムみたいなのはできず、単発で指揮を作るだけです、 数学、得に解析系の問題、課題を解決するのに使えそうなプログラム言語があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ubku
  • ベストアンサー率37% (227/608)
回答No.1

有名なところでは円周率πの計算ですね。πを級数の形に展開して、極限まで計算していくのです。計算が進むほど計算量が多くなるので、数式やプログラムに工夫の余地が出てきます。また、コンピュータの性能を測る指標にもなります。 ご存じの通り、πは次にどんな数字が現れるかを予測することができません、実際に計算しなければ分からないのです。123456789 という並びが現れたかと思うと111111111111という並びが現れたりします。次の数字は誰にも分かりません。 マンデルブロ集合なんかも興味あります。ごく単純な数式が収束するか発散するかで2次元プロット上に色分けしていくと、もじゃもじゃしたきれいで複雑な模様が現れます。特徴的なのは拡大していっても同じような模様が延々とより小さい構造で現れます。これも無限に拡大できます。 あと純粋な数学では分からないですが、いろいろな難問の証明にツールとして大いに役に立つのではないでしょうか? 実生活に役に立つものでいうと、サラリーマン巡回問題といわれるもの、要するに宅配便の最適ルートを計算するものです。最適ルートというものは実は数学的に難問で、膨大な計算が必要になることが分かっています。 あと、CDはじめデジタルアナログ変換で必ず出てくるのがフーリエ変換を改良した高速フーリエ変換です。この辺りはもうハードウエアで処理していまいます。 そして、今はなきスーパーコンピューター「京」です。大量の数を一瞬で計算し、次々と流れ作業的に処理していくことができるノードが数万とか集まったものです。未来の気象予想に使われていたようですが、やっていることは空気と空気の相互作用とか太陽からの熱とか雲、雨(水分)とか海の蒸発とかを数学的にシミュレーションして100年後の気象を予想するとかやってたようです。 プログラム言語について: 数学の統計解析に向いている言語としては「R」という言語があります。 プログラミング一般の基礎を学びたい場合は「C言語」を一通りマスターしておかれるとよろしいでしょう。C++、JAVA、 PHP など、は C言語から派生、拡張されたものです。

mathematiko
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • C言語を始めようと考えている者です

    某国立大理学部数学科の1回生です 4月から2回生の講義でC言語の講義があります。 以下がその内容となります 授業の到達目標 (1) 2進整数の計算、浮動小数点数の計算ができる。 (2) コンピュータが計算を行う基本的な仕組みがわかる。 (3) (2)の内容を実際にC言語で確認できる。 (4) C言語で簡単な数学の問題を解くプログラムを書くことができる。 授業スケジュール 講義  1. 計算と計算機の歴史  2. 2進整数の計算  3. 補数の考え方  4. 浮動小数点数の計算  5. 基本的なデータ型  6. プログラムの条件分岐構造  7. 中間試験  8. プログラムの繰り返し構造I  9. プログラムの繰り返し構造II 10. 配列I 11. 配列II 12. 関数 13. 素数に関する問題を解くプログラム 14. 微積分に関する問題を解くプログラム 15. 学期末試験とその解説 僕は今まで全くC言語プログラミングをしたことがありません。 他の言語も同様です。 http://www.forest.impress.co.jp/library/software/gakucgengo/ このサイトに出ている文法を学ぶことができる開発環境はダウンロードしました。 卒業後はgoogleに就職したいので今のうちからC言語は学んでおきたいのですが 先ず、何を学べばよいのかわかりません… 「アルゴリズム」や、「コンピュータの計算の仕組み」などを学ぶ必要もあると思うのですが 何から手を付ければよいのでしょうか? 考えが煮詰まってしまっています。アドバイスなどお願い致します。 因みに、現在用いているOSはwindows7です。 もしよろしければ、C言語初心者が学び始めるにあたって力強い書籍、サイトなど ありましたら教えてください。 よろしくお願い致します。

  • 数学科の学生が身に着けるべきプログラミング言語

    数理情報科学科で数学を勉強しています。 具体的なプログラミングの授業、工学部の人から良く聞くC言語とかは習う、というか勉強したことがないのですが、数学科の学生でも、就職したときのことを考えると、何か勉強しておいたほうがいい、という話を聞きます。 今は解析とかの授業でいっぱいいっぱいですが、どういう言語を勉強したらいいのでしょうか。また、数学の研究(卒業研究とか)でプログラミング、というとどういうことに使うと思いますか。 4年生の統計でRというのを勉強はするみたいです。

  • 関数はあるがC言語で書けないプログラム

    数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。

  • C言語

    C言語のプログラムで『正の整数を読み込み、その整数より小さい3の倍数を全て表示するプログラムを作る』 これをどなたかプログラミングしてください。お願いします。

  • C言語プログラム

    学校のレポートでC言語のプログラムを作りました。ところが実行してみると計算値を表示させるところに -1.#IND00 と表示されます。本当は実数が表示されるはずなに・・・ 多分、私のプログラムが間違っているのだろうと思います。どこが間違っているのか目星をつけるためにこの出力結果の意味を教えてほしいのです。

  • プログラミング言語の記法について

    現在構文解析や字句解析、コンパイラの勉強をしており、 プログラミング言語ごとの記法を比較しようと思っているのですが、検索してもなかなか出てきません。 定数,変数,選択文,副プログラムの記法など、プログラミング言語の記法を知るにはどうすればいいでしょうか?

  • Cプログラム

    c言語で「正整数Nを入力後、N個の実数を入力し、それらの平均値と最大値を表示するプログラム」を教えてください。

  • このようなプログラムを作るにはなんの言語がいいでしょうか?

    制限時間があり(10秒・15秒・20秒・30秒など)ます。(カウントダウンをします。) 選択肢はA・B・C・Dの4つです。制限時間が過ぎると自動的に次の問題に行くというようなプログラムを作りたいのです。問題文や選択肢の上には画像も入れたいです。どのようなプログラミング言語が適しているでしょうか?よろしくお願いします。

  • C言語の課題について

    C言語のプログラミングの課題なのですが、設問内容として「適当な正整数を読み込んで、12,98,5,34,119,77,26,3の8個の整数の中から、最も近い数を探しましょう。」という問題なのですが、自分でもやってみたもののプログラミングができなかったので、設問のプログラミングがわかる人は早急に教えてくださいよろしくお願いします。

  • 至急で、C言語の問題で解答解説お願いします。

    1実数を3つ(a,b,c)を読み込み3辺とする三角形ができるか判定(d(d-a)(d-b)(d-c)>0のとき三角形となる)しできなければ、三角形ではありません!というメッセージを表示し、できる場合は以下のヘロンの公式を用いて三角形の面積を求めるプログラムをC言語で答えてください。d=(a+b+c)/2 s=√{d(d-a)(d-b)(d-c) 2maxの整数値(≧1)をキーボードから入力し、その値に対応した図形を出力するプログラムをC言語で答えてください。 例 max1 max2 max3 * ** *** * ** *** * ** *** ** *** *** 3整数nをキーボード入力しnの値に応じて以下の図形を表示するプログラムをc言語で答えてください。 n=3 n=4 n=5 3 4 5 45 56 67 678 789 890 0123 1234 56789 4整数n(≧0)を入力し歯科の計算を実行するC言語プログラムを答えてください。2つの自然数nとmを読み込みn個の中からm個を取り出すときの組み合わせの数を計算せよ。ただし、n!を計算する関数long fact (int n)を定義し必ずそれを用いること。 5 1つのscanfで2つの10進数を入力し8進数と16進数で表示するプログラムをC言語で答えてください。 6 実数aを入力し少数第1位で四捨五入する関数g(a)をマクロ定義で入力した値の少数第1位を四捨五入して出力するプログラムをC言語で答えてください。 7 4つの実数w,x,y,zを読み込みその最大値を出力するプログラムをC言語で答えてください。ただし、2つの実数の大きいほうを求める関数 double my may (double x,double y)を定義し、その関数を用い、if文を用いないでc言語で答えてください。

専門家に質問してみよう