2010-12-18 9 views
3

私は、再帰とオブジェクト指向の設計(クラス/インタフェース構造を設計しているいくつかのエンティティがある)を練習する上で問題のあるサイトがあるかどうかを知りたかっただけです。再帰とオブジェクト指向設計を練習するためのサイト/書籍/手品はありますか?

難解な問題なしで再帰を必要とする問題の解決方法を理解していますが、新しい問題に再帰を適用することはできません。再帰を適用する方法はありますか?この質問が非常に愚かであれば、私はお詫び申し上げます!

+5

再帰を理解するには、まず再帰を理解する必要があります。 –

+0

GNUは "GNU Not Unix"を意味します。Javaでは、ほとんどの問題はループを使って解決するのが最も良いので、良い例が見つからない場合は驚かないでください。ほとんどの機能/論理プログラミング言語では、再帰はよりしばしば自然選択である。 –

答えて

3

Project EulerまたはUSACOのようなものを見る必要があるかもしれません。彼らは、単純なものから難しいものまで、多くの問題を提起し、それらの多くは再帰的なテクニックを使って解決することができます。続行すると、他人があなたが試みた問題をどのように解決したのかを見る機会が得られます。この方法では、再帰を学ぶだけでなく、他の多くの問題解決テクニックを学びます。

+0

返事ありがとうございます。私はそれを調べます。 – collegian

+0

また、オブジェクト指向設計に関連する問題を練習できるサイトはありますか? – collegian

+0

OODは、それほど多くのプログラミングが設計されているので、そのようなサイトを見つけるのが少し難しいです。ヘッドファーストOODのような良い本を使うことを別にすれば、私は何を推薦するか分からない。それは様々なプロジェクトを試みることから来なければならないでしょう。 –

0

どのような問題に取り組んでいますか?私はあなたに別のチャンスがあるという新しい問題の1つを挙げてお勧めします。あなたがそれを働かせることができない場合、あなたが持っているものとあなたがやろうとしているものの簡単な例を投稿してください。誰かがあなたを引き裂いているのを見ることができるかもしれません。

+0

私は、チェスの動きをシミュレートする電話パッドに一意の7桁の数字を生成しようとしていました。まず、すべてのオブジェクトを表現する効率的なオブジェクト指向設計をどうすればできますか?その後、チェスの動きをシミュレートする手がかりはありませんでした。そんなに多くの可能性があります! – collegian

+0

もっと簡単な例を試してみてください。 – jzd

1

再帰に

例をhttp://programmingpraxis.com

それが持っている質問/サンプルの例を試し実装:そのプリント番号1から10まで、fibonnaic再帰的なプログラムを書きますシリーズ

+0

返事をお寄せいただきありがとうございます。 – collegian

+0

@ collegian、ようこそ。 – Deepak

1

私の経験では、より多くの数学的アルゴリズム設計で再帰が最も多く使われていますが、より高度なプログラミング(そしてOOPは通常より高いレベルです)では、再帰常に多くを追加するわけではありません。また、再帰的プロシージャは通常は容易に適用できないため、要件の1つが変更された場合、プロシージャ全体を書き直す可能性がありますが、より線形性の高いプログラミングでは、それだけお互いに依存しています。

また、(いくつかの)オブジェクト指向言語では、すべてのレベルの再帰でオブジェクトの新しいインスタンスが作成され、オーバーヘッドが発生します。

これは素晴らしい知っているテクニックですが、プロレムの種類によっては、オブジェクト指向の問題で実際に多くのことが起こることはありません。ファイル/ディレクトリのスクリプトとは別に、私は基本的にパフォーマンスやメンテナンス上の理由から、退屈なリニアメソッドへの私のクールな再帰的なソリューションのほとんどを書き直しました。

関連する問題