AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teilermenge ermitteln

Ein Thema von Nicolai1234 · begonnen am 18. Aug 2005 · letzter Beitrag vom 22. Aug 2005
Antwort Antwort
Seite 3 von 3     123   
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Teilermenge ermitteln

  Alt 21. Aug 2005, 17:42
da sagt man einmal rekusion und schon hat man ne Welle losgetreten!

Ich weiß zwar nicht warum, aber mein Info lehrer will fast immer das wir Probleme rekursiv lösen!

Gibt es einen Vorteil wenn man es über Wiederaufrufe macht?
Jan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#22

Re: Teilermenge ermitteln

  Alt 21. Aug 2005, 18:21
Als Faustregel kann man formulieren: rekursiv definierte Probleme lassen sich über rekursive Algorithmen sehr elegant lösen, performanter ist in der Regel der iterative Algorithmus.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#23

Re: Teilermenge ermitteln

  Alt 21. Aug 2005, 19:18
Zitat von alzaimar:
Dein Beispiel f:= f(f(x)) ist auch rekursiv nicht lösbar (-> Endlosschleife).
naja war ja nur ein Beispiel, man muss da halt noch code mit abbruchkriterien drumrum schreiben.

@marabu: wieder was dazu gelehrnt. gibt es denn ein standardverfahren, wie man eine rekursive implementierung in eine iterative umwandelt?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#24

Re: Teilermenge ermitteln

  Alt 21. Aug 2005, 19:51
Hi BlackJack,

ein einziges Standardverfahren kann es nicht geben, da die Rekursion selbst Varianten kennt - nicht jede Rekursion ist linear und selbst die linearen weisen nicht ausnahmslos eine tail recursion auf. Die Schematisierung des Transformationsprozesses interessiert die Informatiker auch heute noch, z.B. bei der Implementierung funktionaler Sprachen (Lisp, Hope, Miranda, Haskell).

Magst du einen kleinen Einblick? Klick

marabu
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#25

Re: Teilermenge ermitteln

  Alt 22. Aug 2005, 12:07
Jede rekursive Funktion wird und muß in eine iterative umwandelbar sein.
Es gibt aber iterative Funktionen die nicht rekursiv gelösst werden können.

Die rekursive Schreibweise ist nur eine andere Form eines iterativen Verfahrens. Der einzigste Unterschied liegt in der meist einfacheren Begreiflichkeit der rekursiven Verfahren für den Menschen.

Für ds oben angesprochene Problem der Kombinatorik hätte sich auch ein Blick in die CodeLib gelohnt. Dort findest du bestimmt einige Sourcen.

Gruß Hagen
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#26

Re: Teilermenge ermitteln

  Alt 22. Aug 2005, 12:50
Zitat von dizzy:
Gibt es denn mittlerweile eine rein iterative Lösung zun den "Türmen von Hanoi"? Zu meiner Schulzeit jedenfalls war imho noch keine bekannt. (Zumindest meinte dies unserer (entgegen der landläufigen Üblichkeit) relativ gute Info-Lehrer...)
Ja es gibt.
http://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#27

Re: Teilermenge ermitteln

  Alt 22. Aug 2005, 12:52
Hallo Hagen,

Zitat von negaH:
Es gibt aber iterative Funktionen die nicht rekursiv gelösst werden können.
mit diesem Satz widersprichst du einigen Koryphäen auf dem Gebiet der Informatik. Prof. David Gries (damals Cornell University) schreibt in seinem Buch "The Science of Programming" (Chapter 18 - Using Iteration Instead of Recursion):

Zitat:
... in theory at least, any recursive program can be written iteratively (and vice versa), ...
Spricht aus deinen Worten eine innere Überzeugung (wie "die Erde ist eine Scheibe") oder ist deine Aussage missverständlich, weil ungenau? Zielst du vielleicht auf die von mir angedeutete Grundhaltung, dass nicht jeder Versuch, die "Korrektheit" eines durch vollständige Induktion untermauerten Algorithmus gegen einen kleinen prozentualen Performanzgewinn durch iterative Implementierung einzutauschen, vernünftig ist?

Freundliche Grüße vom marabu


@BlackJack: In dem von mir hier zitierten Buch versucht der Autor einige Vorgehensweisen zur Schematisierung der Transformation zu vermitteln.
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#28

Re: Teilermenge ermitteln

  Alt 22. Aug 2005, 13:17
Zitat von marabu:
@BlackJack: In dem von mir hier zitierten Buch versucht der Autor einige Vorgehensweisen zur Schematisierung der Transformation zu vermitteln.
naja so sehr wollte ich mich in die materie eigentlich nicht einarbeiten, aber das pdf von dir war schon echt interessant (auch wenn mir der C++ -(und Haskel?) Code manchmal einige schwierigkeiten bereitet hat).
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz