AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Algorithmus Laufzeitverhalten Knoten im Kopf (Knobelaufgabe)
Thema durchsuchen
Ansicht
Themen-Optionen

Algorithmus Laufzeitverhalten Knoten im Kopf (Knobelaufgabe)

Ein Thema von stoxx · begonnen am 3. Mär 2006 · letzter Beitrag vom 8. Mär 2006
Antwort Antwort
Seite 3 von 3     123   
marabu

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

Re: Algorithmus Laufzeitverhalten Knoten im Kopf (Knobelaufg

  Alt 5. Mär 2006, 16:52
Hi stoxx,

dein erstes Beispiel hatte einen Fehler - du erinnerst dich? Die Beschreibung des Algorithmus ist nicht vollständig - der Begriff Häufigkeit ist nicht ausreichend definiert. Mir fehlen zuverlässige Testfälle zur Verifikation einer Implementierung. Als Referenz bietest du mir deinen Code an. Ich habe ihn analysiert und musste als erstes festgestellen, dass du jeweils den ersten Buchstaben eines Abschnittes nicht in die Häufigkeitszählung (CountArray) einfließen lässt. Interessanterweise hat das bei mehreren Testsequenzen keinen Einfluss auf das Ergebnis, aber es erschüttert auch mein Vertrauen in deinen Referenzcode.

Eines ist mir inzwischen klar - mein ursprüngliches Problemverständnis ist falsch, da ich die lückenhaften Informationen durch Fehlinterpretation geschlossen habe. Damit ist auch mein Code unbrauchbar, obwohl er gelegentlich richtige Eregbnisse gebracht hatte. Häufigkeiten waren in meinem Code homogene Teilkettenlängen. In deiner Implementierung interessieren keine statischen Häufigkeiten, weder die Häufigkeit in der Eingabesequenz, noch die Häufigkeit im untersuchten Abschnitt. Du arbeitest mit einer dynamischen Häufigkeit im Abschnitt. (Sequenz nenne ich hier die ursprüngliche Eingabe, Abschnitt die iterativ um eine Stelle gekürzte Sequenz.)

Ich hatte schon sehr früh auf die Bedeutung einer vollständigen und korrekten Beschreibung für den Algorithmus hingewiesen. Der von dir zitierte Text scheint nur ein Fragment deiner Aufgabenstellung zu sein. Aus Gründen die ich nur ahnen kann, scheust du die Preisgabe von Hintergrundinformationen.

Wenn die dynamische Berechnung der Häufigkeit in deinem Code korrekt ist, dann wirst du wohl prinzipiell von O(n*n) nicht wegkommen. Eine Voraussetzung für die Reduktion der Komplexität wäre eine feste Intervallgrenze (eine genügt), aber was ich hier mit dynamischer Berechnung bezeichne, basiert auf einem sliding window - da ist keine Vorberechnung der Häufigkeiten sinnvoll.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#22

Re: Algorithmus Laufzeitverhalten Knoten im Kopf (Knobelaufg

  Alt 8. Mär 2006, 19:24
Hi Marabu,

naja .. dann werde ich es wohl bei dem schlechten Laufzeitverhalten belassen müssen. Hatte gehofft, dass es vielleicht eine Abkürzung gäbe.

Als Referenz bietest du mir deinen Code an. Ich habe ihn analysiert und musste als erstes festgestellen, dass du jeweils den ersten Buchstaben eines Abschnittes nicht in die Häufigkeitszählung (CountArray) einfließen lässt. Da hast Du doch glatt noch einen kleinen Bug entdeckt. hehe .. aber das liegt einfach dran, dass ich beim Initialisieren des ersten Buchstabens das doch glatt vergessen habe.
Der erste Buchstabe wird aber bei ganz langen Zeichenketten sowieso uninteressant .. daher hab ich wohl etwas geschludert
NAja .. hab vielen Dank für Deine Bemühungen, das Problem zu kapieren, war nicht einfach ...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  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 22:47 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