2010-12-18 4 views
3

Ich wollte nur wissen, ob es irgendwelche Seiten gibt, die Probleme bei der Rekursions- und OO-Gestaltung haben (wenn man ein paar Entitäten sieht, die die Klassen-/Interface-Struktur entwerfen)?Irgendwelche Seiten/Bücher/Tricks, um Rekursion und OO-Design zu üben?

Ich verstehe die Lösungen für Probleme, die Rekursion ohne irgendwelche Schwierigkeiten erfordern, aber ich kann scheinen, Rekursion auf ein neues Problem anzuwenden. Gibt es irgendwelche Tricks, um Rekursion anzuwenden? Ich entschuldige mich, wenn diese Frage sehr dumm ist!

+5

Um die Rekursion zu verstehen, müssen Sie zuerst die Rekursion verstehen. –

+0

GNU bedeutet "GNU Not Unix" In Java werden die meisten Probleme am besten mit Loops gelöst. Seien Sie also nicht überrascht, wenn Sie kein gutes Beispiel finden. In den meisten funktionalen/logischen Programmiersprachen ist die Rekursion häufiger eine natürliche Wahl. –

Antwort

3

Möglicherweise müssen Sie etwas wie Project Euler oder USACO betrachten. Sie bieten viele Probleme von einfach bis schwer und viele von ihnen können mit rekursiven Techniken gelöst werden. Wenn Sie fortfahren, werden Sie sehen können, wie andere die Probleme, die Sie versuchen, gelöst haben. Auf diese Weise lernen Sie nicht nur Rekursion, sondern auch viele andere Problemlösungstechniken.

+0

Danke für die Antwort. Ich werde es untersuchen. – collegian

+0

Gibt es auch Websites, auf denen ich Objektorientierte Design-Probleme üben kann? – collegian

+0

OOD ist ein bisschen schwieriger, eine solche Seite zu finden, da es nicht so viel Programmiert, wie es Design ist. Abgesehen von einem guten Buch wie Head First OOD bin ich mir nicht sicher, was ich empfehlen soll. Es muss vom Versuch verschiedener Projekte kommen. –

0

Auf welche Probleme stoßen Sie? Ich würde vorschlagen, dass Sie bei einem der neuen Probleme eine weitere Chance haben. Wenn Sie es nicht zur Arbeit bringen können, schreiben Sie ein einfaches Beispiel dafür, was Sie haben und was Sie zu tun versuchen, und jemand könnte sehen, welcher Teil Sie stolpern lässt.

+0

Ich habe versucht, einzigartige 7-stellige Zahlen auf einem Telefon-Pad zu erzeugen, das die Bewegungen von Schachfiguren simuliert.In erster Linie, wie mache ich ein effizientes objektorientiertes Design, um alle Objekte darzustellen? Danach hatte ich keine Ahnung, wie sich die Schachfiguren bewegten. Es gibt so viele Möglichkeiten! – collegian

+0

Vielleicht versuchen Sie zuerst ein einfacheres Beispiel. – jzd

1

versuchen http://programmingpraxis.com

Es hat Fragen/Probe Beispiele auf Rekursion

Beispiel: eine rekursive Programm, das druckt Zahlen von 1 bis 10, fibonnaic schreiben Serie

+0

Danke für die Antwort. Schauen wir hinein. – collegian

+0

@ collegian, Ihre Begrüßung. – Deepak

1

Nach meiner Erfahrung wird Rekursion am meisten auf mehr mathematischen Algorithmus Design verwendet, aber in höheren Programmiersprachen (und OOP ist in der Regel höhere Ebene), die Verwendung von Rekursion fügt nicht immer viel hinzu. Auch rekursive Prozeduren sind normalerweise nicht einfach zu adaptieren. Wenn sich also eine der Anforderungen ändert, kann dies dazu führen, dass Sie die gesamte Prozedur neu schreiben, während Sie in der linearen Programmierung leichter etwas einlesen oder auslassen können so aufeinander angewiesen.

Auch in (einigen?) Objektorientierten Sprachen wird für jede Rekursionsebene eine neue Instanz eines Objekts erstellt, was Overhead verursacht.

Es ist eine schöne Technik zu wissen, aber abhängig von der Art von Prolemen, werden Sie möglicherweise nicht wirklich in OO-Probleme die reale Nutzung davon zu tun. Abgesehen von einem Datei-/Verzeichnisskript habe ich die meisten meiner rekursiven Lösungen aus Performance- oder Wartungsgründen in langweilige lineare Lösungen umgeschrieben.

Verwandte Themen