アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラムについては素人です.

ナップサック問題など,動的計画に適している言語としてなにから勉強すればよいでしょうか?

まずは,C++でしょうか?
それからjavaなんでしょうか?

A 回答 (2件)

ナップサック問題等は、結果を文字,数字で表示すれば事足りるので、C++のようなオブジェクト指向言語は必要ありません。


FORTRANかC言語のような基本言語でじゅうぶんです。
javaのようなネット系言語は計算に向いていません。
ちなみに、私は新人研修の折に、C言語を用いてナップサック問題を解かせました。この問題は、プログラムする以前に問題の分析に比重が置かれます。
    • good
    • 0
この回答へのお礼

たいへんよく分かりました.
ありがとうございます.

ただ,以下のJavaで動的計画をプログラムする本が売られているのですが,なぜにJavaとなるのでしょうか?

もしよろしければ,Cで動的計画を勉強できるおすすめの本があれば教えていただきたいです.


http://www.amazon.co.jp/exec/obidos/ASIN/4774112 …

お礼日時:2005/08/25 18:43

No.1のお礼に対する回答



ダイナミックプログラミングは、javaが世に出る30年以上も前から存在しましたので、何もjavaに拘る必要はないんです。無理してjavaを選択すると、計算面で苦労しますよ(javaは計算が不得手ですし、また処理速度も遅いです)。

「Javaで動的計画をプログラムする本」は、かなり無理して特定の範囲に限ったダイナミックプログラミング手法を紹介していると見ます。つまり、「javaでもできる」という新奇性をねらって書かれたものとおもいます。

そんなことより、ダイナミックプログラミング手法の解説書を読み、そこに紹介されている言語で試してみるのが近道です。
繰り返しますが、ダイナミックプログラミング手法は記述言語を問題にするのではなく、その解決手法が問題になります。
解決手法を考えついたら、その時点から記述言語の選択をしても遅くありません。
ですから、言語よりも、コンピュータで何ができるかを学んだ方がいいと思います。

参考URLを見るかぎりでは、FORTRANが適していると思われます。
javaではとても、とてもです。
C言語だと、計算誤差を気にしながらプログラミングする必要があります。

参考URL:http://www.sist.ac.jp/~suganuma/kougi/other_lect …
    • good
    • 0
この回答へのお礼

再び回答をありがとうございました.
とても参考になりました.
JAVAを無理にやることはないと分かっただけでも今回質問してよかったと思いました.

お礼日時:2005/08/25 19:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!