-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
21. Jun 2010
Denke mal drüber nach warum ich in diesem Thread immer wieder betone das das nur eine Form einer Schreibweise ist und eben nicht direkt im Zusammenhang mit irgendwas Realem, wie eben Hardware, steht.
Rekursiv vs. Iterativ ist eine Frage der Schreibweise eines Algorithmus. Es ist nicht der Algorithmus selber noch dessen praktische Realisierung in Hardware.
Man muß immer strikt abstrahieren...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
21. Jun 2010
function XorVectorBits(Bits: std_logic_vector, Index: integer) return std_logic;
variable
Result: std_logic;
begin
Result := Bits(Index);
if Index < Bits'High then
Result := Result xor XorVetorBits(Bits, Index +1);
end if;
return Result;
end function;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
21. Jun 2010
Das ist eine Definitionsfrage. CPU=Central Processing Unit=Zentrale Recheneinheit. Wenn wir von einem Rechner=Computer ausgehen so ist die CPU der Kernbestandteil. Dieser könnte ein ASIC aber auch FPGA oder sogar ein ASIC mit internem FPGA sein. FPGAs arbeiten per se erstmal alles in parallel ab und nicht sequientiell. Wenn sequientiell dann weil es der Programmierer mit Hilfe eines Taktes so...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
13. Jun 2010
Betrachtet man mal die Harwdare Papier genauer in diesem Rahmen dann sind rekursive Scheibweisen sogar Speicher=Papier schonender als die meisten iterativen Schreibweisen. In diesem Fall kann man unter Berücksichtung "Harwdare ist Papier" sogar behaupten das rekursive Schreibweisen besser sind als iterative. Auch die Resource "Performance" ist in diesem Fall besser da man weniger Formeln eben...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
13. Jun 2010
@Alzaimar
Das ist eben nicht richtig. Deine Aussage bezieht sich nur auf eine spezifische Hardware auf der dann Schleifen schneller laufen als zb. die gleiche Anzahl von Sprüngen zu Unterfunktionen.
Das gilt zb. für die Hardware FPGA oder Papier eben nicht mehr. Dort existiert kein Overhead im Speicher und Performance beim Aufruf von Unterfunktionen weil sie durch die Synthese eliminiert...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Noch nichtmal das, wir vergleichen erstmal nur unterschiedliche Schreibweisen ein und der selben Sache.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Und wo siehst Du jetzt eine Diskrepanz ?
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Dann beweise das bitte. Ich behaupte das es da keinen Unterschied geben darf und wird aus Sicht des Resultates wenn man einen fairen Vergleich anstellt.
Es unterscheidet sich ausschließlich nur die Schreibweise im Quelltext. Es verbleiben nur noch konstruktiv die Argumente, was ist verständlicher und damit wartbarer.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Ok, gehen wir es mal systematisch an.
Wir wollen wissen ob eine "rekursive" Schreibweise ein und des selben Algorithmus im Gegensatz zu einer "iterativen" Schreibweise in einer Programmiersprache die keine der beiden Seiten bevorzugt auf einer Hardware die ohne zusätzliche Performance- und Speicherunterschiede beim Aufruf von Unterfunktionen, einen Unterschied machen.
Wir stellen uns eine...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Tja, Glashaus und Porzelanladen. Schade eigentlich. Bin somit weg.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Na dann schau dir mal dieses Zitat an.
... warum Windows... lahmlegt.
Dir ist schon bewusst das wir hier "iterativ vs. rekursiv" diskutieren ? Und du führst als Agrumentation Windows oder Assembler an. Jeder geht dann davon aus, besonders weil du pro "iterativ" argumentierst, das somit Windows langsammer wurde weil es rekursive Implementierungen bevorzugt.
Dann lese das...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Naja, aber für einen fairen Vergleich "iterativ vs. rekursiv" sollte man schon sich auf ein und den selben Algorithmus beziehen.
Problemstellung -> Formel/Algortihmus -> Implementierung auf jeweiliger HW mit spezifischer SW -> rekursiv vs. iterativ
Das wäre mein Vorschlag.
Das Aufwand-Nutzen-Verhältnis sollten wir aussen vor lassen.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Und ? Ich poste ja nicht für Ihn sondern für Alle.
PS: mal davon abgesehen bin ich immer für sachliche Gegenargumente offen, denn keiner kann sich jemals 100% sicher sein das sein Wissen vollständig ist. Vielleicht kommt ja ein Experte für Quantencomputer hier vorbei und berichtet von den neusten Erkenntnissen der Mathematik/Informatik und zeigt uns eine neue Sichtweise die unser Wissen...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Wenn eine rekursive Variante eine Algos. Werte mehrfach berechnet im Vergleich zur iterative Variante dann existiert ein Unterschied in der Komplexität beider Implementierungen. Ein Unterschied in der Komplexität bedeutet das es unterscheidliche nicht mehr vergleichbare Algorithmen sind. Ergo: Äpfel und Birnen und damit nichts aussagend für den Vergleich "rekursiv vs. iteratv".
Also ganz...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
;) vorsicht, jetzt begibts du dich auf Glatteis. Es gibt einen mathematischen Beweis das es solche Probleme geben muß. Leider finde ich jetzt nicht auf die Schnelle bei Wikipedia die richtige Seite.
Solche Probleme gibt es also wirklich. War irgenwas mit einer Ameisensimulation oä.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Es gäbe da ein "Argument" pro Iterativ:
Nämlich das es bestimmte Problemstellung gibt die man nicht rekusiv formulieren kann. Aber das ist am Thema vorbei, da wir davon ausgehen können das ein Vergleich rekursiv vs. iterativ nur dann Sinn macht wenn auch auch vom Problem her beide Möglichkeiten gibt.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Na endlich kommen wir weiter. Es gibt keinen Überlegenen, iterativ vs. rekursiv sind identisch und erst die Fähigkeiten der Hardware macht einen Unterschied. Aber dieser ist eben oft nur marginal im Speicher wie Performancebereich, ansonsten bleibt die Komplexität des Algos. erhalten, egal ob rekursiv/iterativ. Alle weiteren Tricks lassen sich dann rekursiv wie auch iterativ anwenden da es Tricks...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Korrekt, du verstehst langsam. Aus dieser Sichweise heraus kann man also den Algo. iterativ wie auch rekursiv aufbauen (wenn es eine rekursive Version dafür gibt) ohne das es einen Untrschied in desen Komplexität gibt.
Erst wenn man anfängt diesen Algo. zu implementieren auf einer jeweiligen Hardware wird es nur und ausschließlich nur auf Grund dieser Hardware leichte Unterschiede zu Gunsten...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Aus Sicht der Performance-/Speicherunterschiede. Aber meiner Meinung nach eben nicht aus Sicht der Verständlichkeit und Wartbarkeit.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Ja, aber von der Priorität her erst als allerletztes Mittel (Ausnahmen bestätigen die Regel).
Und wie ich vorherig schon beschrieb gibt es nicht nur die schmale Sichtweise auf die ASICs, sondern die Frage "iterativ vs. rekursiv" lässt sich für jede Hardware stellen, zb. auch auf Papier, FPGAs uvm.
Gruß Hagen
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Korrekt. Man wird dann nämlich sehr oft den Beweis für die Korrektheit ebenfalls rekursiv formulieren können und das ist wesentlich einfacher. Um Fehldeutungen dieses Satzes von vornherein auszuschließen. Ich beziehe mich auf den Beweis der Korrektheit des angewendeten Algorithmus auf höherer Ebene. Also nicht ob das Program am Ende tut was man geplant hat, also den Einzelfall sondern den Beweis...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
11. Jun 2010
Die Eingangsfrage ist ob rekusive oder iterative Umsetzungen eines Algos besser oder schlechter ist.
Man kann nun Äpfel mit Birnen vergleichen oder unsachlich argumentieren (zb. was hat Assembler damit zu tuen, oder was hat die Implementierung von Windows damit zu tuen, oder welche Relevanz hat eine Diskussion wenn man zb. für Fibonacci einen komplett anderen Algorithmus als Lösung vorschlägt...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by negaH,
10. Jun 2010
Ich meine das sollte vom verwendeten Algorithmus und damit Zielsetzung abhängig gemacht werden. Es gibt nur sehr wenige und schwache Begründungen warum man zB. einen mathematischen Algorithmus, der per Formel rekursiv formuliert wurde, in Software später iterativ zu implementieren. Erstens dient ja die Formel als Basis und wenn man 1 zu 1 diese als Implementierung in SW wieder findet so erhöht...