Tuesday, October 4, 2016

Moving Average-Warteschlange

Eine Zeitreihe ist eine Folge von Beobachtungen einer periodischen Zufallsvariablen. Beispiele dafür sind die monatliche Nachfrage nach einem Produkt, die jährliche Neueinreichung in einer Abteilung der Universität und die täglichen Flüsse in einem Fluss. Zeitreihen sind wichtig für Operations Research, weil sie oft die Treiber von Entscheidungsmodellen sind. Ein Inventarmodell erfordert Schätzungen zukünftiger Anforderungen, ein Kursterminierungs - und Personalmodell für eine Universitätsabteilung erfordert Schätzungen des zukünftigen Zuflusses von Schülern und ein Modell für die Bereitstellung von Warnungen für die Bevölkerung in einem Flusseinzugsgebiet erfordert Schätzungen der Flussströme für die unmittelbare Zukunft. Die Zeitreihenanalyse liefert Werkzeuge zur Auswahl eines Modells, das die Zeitreihen beschreibt und das Modell zur Prognose zukünftiger Ereignisse verwendet. Das Modellieren der Zeitreihen ist ein statistisches Problem, da beobachtete Daten in Berechnungsverfahren verwendet werden, um die Koeffizienten eines vermeintlichen Modells abzuschätzen. Modelle gehen davon aus, dass Beobachtungen zufällig über einen zugrunde liegenden Mittelwert, der eine Funktion der Zeit ist, variieren. Auf diesen Seiten beschränken wir die Aufmerksamkeit auf die Verwendung von historischen Zeitreihendaten, um ein zeitabhängiges Modell abzuschätzen. Die Methoden eignen sich zur automatischen, kurzfristigen Prognose häufig verwendeter Informationen, bei denen sich die zugrunde liegenden Ursachen der zeitlichen Variation nicht rechtzeitig ändern. In der Praxis werden die von diesen Methoden abgeleiteten Prognosen anschließend von menschlichen Analytikern modifiziert, die Informationen enthalten, die aus den historischen Daten nicht verfügbar sind. Unser Hauptziel in diesem Abschnitt ist es, die Gleichungen für die vier Prognosemethoden zu präsentieren, die im Prognose-Add-In verwendet werden: gleitender Durchschnitt, exponentielle Glättung, Regression und doppelte exponentielle Glättung. Diese werden als Glättungsmethoden bezeichnet. Zu den nicht berücksichtigten Methoden gehören qualitative Prognose, multiple Regression und autoregressive Methoden (ARIMA). Die, die an der umfangreicheren Abdeckung interessiert sind, sollten die Prognoseprinzipien Aufstellungsort besuchen oder ein der ausgezeichneten Bücher auf dem Thema lesen. Wir verwendeten das Buch Prognose. Von Makridakis, Wheelwright und McGee, John Wiley amp Sons, 1983. Um die Excel-Beispiele-Arbeitsmappe zu verwenden, muss das Prognose-Add-In installiert sein. Wählen Sie den Relink-Befehl, um die Links zum Add-In zu erstellen. Diese Seite beschreibt die Modelle für die einfache Prognose und die Notation für die Analyse verwendet. Diese einfachste Prognosemethode ist die gleitende Durchschnittsprognose. Die Methode ist einfach Mittelwerte der letzten m Beobachtungen. Es ist nützlich für Zeitreihen mit einem sich langsam ändernden Mittelwert. Diese Methode berücksichtigt die gesamte Vergangenheit in ihrer Prognose, aber wiegt jüngste Erfahrungen stärker als weniger jüngste. Die Berechnungen sind einfach, da nur die Schätzung der vorherigen Periode und die aktuellen Daten die neue Schätzung bestimmen. Das Verfahren eignet sich für Zeitreihen mit einem sich langsam ändernden Mittelwert. Die Methode des gleitenden Mittels reagiert nicht gut auf eine Zeitreihe, die mit der Zeit zunimmt oder abnimmt. Hierbei handelt es sich um einen linearen Trendbegriff im Modell. Das Regressionsverfahren nähert sich dem Modell durch die Konstruktion einer linearen Gleichung, die die kleinsten Quadrate an die letzten m Beobachtungen bietet. Ich habe ein wissenschaftliches Datenlogging-Programm, das ich seit einer Reihe von Jahren entwickelt habe. Wir müssen jetzt etwas Funktionalität hinzufügen, so dass es einen gleitenden Durchschnitt der gesammelten Daten erzeugt. Ich kann eine Warteschlange von myDataClass erstellen, um den fifo-Puffer zu tun, aber ich frage mich, was der beste Weg, der die Mittelung tut, sein könnte. Wie Sie aus dem folgenden Codebeispiel sehen können, enthält myDataClass verschiedene Datenstrukturen, von denen einige gemittelt werden können, und einige, die nicht (z. B. die Zeichenfolge) sein können. Die Hauptfrage ist, ob es eine einfache Möglichkeit, dies zu erreichen oder muss ich Code zu durchschnittlich jedes Element in myDataClass schreiben oder sollte ich redesign myDataClass Danke. Ich würde eine Klasse quotDataQueue (of MyDataClass), die sich selbst dequeue, wenn die Anzahl in der Warteschlange 10 Elemente zu erstellen. Auf diese Weise müssen Sie nie um die Anzahl der Artikel in der Warteschlange aus Ihrem Code zu kümmern, wird dies kümmern werden aus der Warteschlange-Klasse Als Antwort markiert von Mike Feng Moderator Mittwoch, 20. Juli 2011 1:56 Tuesday, July 12, 2011 9:40 AM Nach ein wenig mehr Forschung, ich glaube, ich fand die Lösung für Sie. Sie können die CopyTo-Methode verwenden, um die linken Elemente in der Warteschlange in einem Array zu kopieren. Seien Sie sich bewusst, ich habe nicht den Durchschnitt zu berechnen, zeigte ich nur, wie Sie die Basis Ihrer Berechnungen bekommen können, aber das ist nur Hinzufügen Ihrer eigenen Berechnungen basierend auf Ihrer Geschäftsregel für die. Als Antwort markiert von Mike Feng Moderator Basiert auf meinem Verständnis, Ihre Anforderung ist so etwas wie dies: Dies sind die Daten in der Warteschlange: myDataClass1. Datadbl 2.1 datastr quotsomeString1quot dataarraydbl ein doppeltes Array myDataClass2. Datadr 3.5 datastr quotsomeString2quot dataarraydbl ein doppeltes Array myDataClass10. Datadbl 9.1 datastr quotsomeString10quot dataarraydbl ein doppeltes Array Nun wollen Sie die durchschnittliche Anzahl der datadbl Feild in jedem myDataClass-Objekt zu berechnen, und erhalten Sie die durchschnittliche Anzahl der dataarraydbl Feild. Wenn ja, schlage ich Ihnen vor, die gleiche Sache wie Crazypenie vorgeschlagen: eine neue Klasse namens DataQueue: Ich hoffe, dies wird hilfreich sein, wenn ich etwas falsch verstanden haben, wenden Sie sich bitte lassen Sie mich wissen. Mike Feng MSFT MSDN Community Support Feedback an uns Get oder Request Code Beispiel von Microsoft Bitte denken Sie daran, die Antworten als Antworten markieren, wenn sie helfen, und sie zu markieren, wenn sie keine Hilfe bieten. Als Antwort markiert von Mike Feng Moderator Mittwoch, 20. Juli 2011 15:33 Danke Cor, ich könnte es so machen, aber myDataClass ist eigentlich ziemlich groß und das Protokollierungssystem kann laufen Eine lange Zeit, so ist es effizienter für mich zu Junk-Kopien der Klasse I dont tatsächlich für die Berechnung der Durchschnitt. Warteschlange schien der einfachste Weg, dies zu erreichen. Meine Hauptfrage ist aber, wie durchschnittlich eine Klasse wie diese Ich bekomme das Gefühl, dass ich muss Code schreiben, die es speziell für jeden Datentyp in myDataClass. Öffentliche Klasse myDataClass Nach meinem Verständnis, Ihre Anforderung ist so etwas wie dies: Dies sind die Daten in der Warteschlange: myDataClass1. Datadbl 2.1 datastr quotsomeString1quot dataarraydbl ein doppeltes Array myDataClass2. Datadr 3.5 datastr quotsomeString2quot dataarraydbl ein doppeltes Array myDataClass10. Datadbl 9.1 datastr quotsomeString10quot dataarraydbl ein doppeltes Array Nun wollen Sie die durchschnittliche Anzahl der datadbl Feild in jedem myDataClass-Objekt zu berechnen, und erhalten Sie die durchschnittliche Anzahl der dataarraydbl Feild. Wenn ja, schlage ich Ihnen vor, die gleiche Sache wie Crazypenie vorgeschlagen: eine neue Klasse namens DataQueue: Ich hoffe, dies wird hilfreich sein, wenn ich etwas falsch verstanden haben, wenden Sie sich bitte lassen Sie mich wissen. Mike Feng MSFT MSDN Community Support Feedback an uns Get oder Request Code Beispiel von Microsoft Bitte denken Sie daran, die Antworten als Antworten markieren, wenn sie helfen, und sie zu markieren, wenn sie keine Hilfe bieten. Als Antwort markiert von Mike Feng Moderator Ich habe ein wissenschaftliches Datenlogging-Programm, das ich seit einer Reihe von Jahren entwickelt habe. Wir müssen jetzt etwas Funktionalität hinzufügen, so dass es einen gleitenden Durchschnitt der gesammelten Daten erzeugt. Ich kann eine Warteschlange von myDataClass erstellen, um den Fifo-Puffer zu tun, aber ich frage mich, was der beste Weg, den Mittelwert zu tun, sein könnte. Wie Sie aus dem folgenden Codebeispiel sehen können, enthält myDataClass verschiedene Datenstrukturen, von denen einige gemittelt werden können, und einige, die nicht (z. B. die Zeichenfolge) sein können. Die Hauptfrage ist, ob es eine einfache Möglichkeit, dies zu erreichen oder muss ich Code zu durchschnittlich jedes Element in myDataClass schreiben oder sollte ich redesign myDataClass Danke. Ich würde eine Klasse quotDataQueue (of MyDataClass), die sich selbst dequeue, wenn die Anzahl in der Warteschlange 10 Elemente zu erstellen. Auf diese Weise müssen Sie nie um die Anzahl der Artikel in der Warteschlange aus Ihrem Code zu kümmern, wird dies kümmern werden aus der Warteschlange-Klasse Als Antwort markiert von Mike Feng Moderator Mittwoch, 20. Juli 2011 1:56 Tuesday, July 12, 2011 9:40 AM Nach ein wenig mehr Forschung, ich glaube, ich fand die Lösung für Sie. Sie können die CopyTo-Methode verwenden, um die linken Elemente in der Warteschlange in einem Array zu kopieren. Seien Sie sich bewusst, ich habe nicht den Durchschnitt zu berechnen, zeigte ich nur, wie Sie die Basis Ihrer Berechnungen erhalten können, aber das ist nur das Hinzufügen Ihrer eigenen Berechnungen basierend auf Ihrer Geschäftsregel für die. Als Antwort markiert von Mike Feng Moderator Basiert auf meinem Verständnis, Ihre Anforderung ist so etwas wie dies: Dies sind die Daten in der Warteschlange: myDataClass1. Datadbl 2.1 datastr quotsomeString1quot dataarraydbl ein doppeltes Array myDataClass2. Datadr 3.5 datastr quotsomeString2quot dataarraydbl ein doppeltes Array myDataClass10. Datadbl 9.1 datastr quotsomeString10quot dataarraydbl ein doppeltes Array Nun wollen Sie die durchschnittliche Anzahl der datadbl Feild in jedem myDataClass-Objekt zu berechnen, und erhalten Sie die durchschnittliche Anzahl der dataarraydbl Feild. Wenn ja, schlage ich Ihnen vor, die gleiche Sache wie Crazypenie vorgeschlagen: eine neue Klasse namens DataQueue: Ich hoffe, dies wird hilfreich sein, wenn ich etwas falsch verstanden haben, wenden Sie sich bitte lassen Sie mich wissen. Mike Feng MSFT MSDN Community Support Feedback an uns Get oder Request Code Beispiel von Microsoft Bitte denken Sie daran, die Antworten als Antworten markieren, wenn sie helfen, und sie zu markieren, wenn sie keine Hilfe bieten. Als Antwort markiert von Mike Feng Moderator Mittwoch, 20. Juli 2011 15:33 Danke Cor, ich könnte es so machen, aber myDataClass ist eigentlich ziemlich groß und das Protokollierungssystem kann laufen Eine lange Zeit, so ist es effizienter für mich zu Junk-Kopien der Klasse I dont tatsächlich für die Berechnung der Durchschnitt. Warteschlange schien der einfachste Weg, dies zu erreichen. Meine Hauptfrage ist aber, wie durchschnittlich eine Klasse wie diese Ich bekomme das Gefühl, dass ich muss Code schreiben, die es speziell für jeden Datentyp in myDataClass. Öffentliche Klasse myDataClass Nach meinem Verständnis, Ihre Anforderung ist so etwas wie dies: Dies sind die Daten in der Warteschlange: myDataClass1. Datadbl 2.1 datastr quotsomeString1quot dataarraydbl ein doppeltes Array myDataClass2. Datadr 3.5 datastr quotsomeString2quot dataarraydbl ein doppeltes Array myDataClass10. Datadbl 9.1 datastr quotsomeString10quot dataarraydbl ein doppeltes Array Nun wollen Sie die durchschnittliche Anzahl der datadbl Feild in jedem myDataClass-Objekt zu berechnen, und erhalten Sie die durchschnittliche Anzahl der dataarraydbl Feild. Wenn ja, schlage ich Ihnen vor, die gleiche Sache wie Crazypenie vorgeschlagen: eine neue Klasse namens DataQueue: Ich hoffe, dies wird hilfreich sein, wenn ich etwas falsch verstanden haben, wenden Sie sich bitte lassen Sie mich wissen. Mike Feng MSFT MSDN Community Support Feedback an uns Get oder Request Code Beispiel von Microsoft Bitte denken Sie daran, die Antworten als Antworten markieren, wenn sie helfen, und sie zu markieren, wenn sie keine Hilfe bieten. Markiert als Antwort von Mike Feng Moderator Mittwoch, 20. Juli 2011 13:55 Uhr AMA, 15 Juli, 2011 3:33 AMAVERAGES / Einfacher gleitender Durchschnitt Durchschnittswerte / Einfacher gleitender Durchschnitt Sie werden angeregt, diese Aufgabe entsprechend der Aufgabenbeschreibung zu lösen Jede Sprache, die Sie vielleicht kennen. Berechnen der einfachen gleitenden Durchschnitt einer Reihe von Zahlen. Erstellen Sie eine Stateful-Funktion / Klasse / Instanz, die einen Punkt dauert und gibt eine Routine zurück, die eine Zahl als Argument annimmt und einen einfachen gleitenden Durchschnitt ihrer Argumente zurückgibt. Ein einfacher gleitender Durchschnitt ist ein Verfahren zum Berechnen eines Durchschnitts eines Stroms von Zahlen durch nur Mittelung der letzten 160 P 160-Nummern aus dem Strom 160, wobei 160 P 160 als Periode bekannt ist. Sie kann implementiert werden, indem eine Initialisierungsroutine mit 160 P 160 als Argument 160 I (P) 160 aufgerufen wird, die dann eine Routine zurückgeben sollte, die, wenn sie mit einzelnen aufeinanderfolgenden Elementen eines Stroms von Zahlen aufgerufen wird, den Mittelwert von (up To), die letzten 160 P 160 von ihnen, rufen Sie diese 160 SMA (). Das Wort 160 stateful 160 in der Aufgabenbeschreibung bezieht sich auf die Notwendigkeit für 160 SMA () 160, sich an bestimmte Informationen zwischen Anrufen zu erinnern: 160 Der Zeitraum 160 P 160 Ein geordneter Container von mindestens den letzten 160 P 160 Nummern von jedem von Seine individuellen Anrufe. Stateful 160 bedeutet auch, dass sukzessive Aufrufe von 160 I (), 160 der Initialisierer, 160 separate Routinen zurückgeben sollten, die 160 nicht den gespeicherten Zustand teilen, so dass sie auf zwei unabhängigen Datenströmen verwendet werden können. Pseudocode für eine Implementierung von 160 SMA 160 ist: Diese Version verwendet eine persistente Warteschlange, um die letzten p Werte zu halten. Jede vom init-moving-average zurückgegebene Funktion hat ihren Zustand in einem Atom, das einen Queue-Wert enthält. Diese Implementierung verwendet eine zirkuläre Liste, um die Zahlen in dem Fenster am Anfang jedes Iterationszeigers zu speichern, bezieht sich auf die Listenzelle, die den Wert hält, der sich gerade aus dem Fenster bewegt und durch den gerade addierten Wert ersetzt wird. Verwenden eines Closure-Edit derzeit Diese sma kann nicht nogc, weil es eine Schließung auf dem Heap zugeordnet. Einige Escape-Analyse konnte die Heap-Zuweisung entfernen. Verwenden einer Strukturbearbeitung Diese Version vermeidet die Heapzuweisung des Verschlusses, der die Daten im Stapelrahmen der Hauptfunktion hält. Gleiche Ausgabe: Um zu vermeiden, dass die Gleitkomma-Näherungen aufeinandertreiben und wachsen, kann der Code eine periodische Summe auf dem gesamten kreisförmigen Warteschlangen-Array ausführen. Diese Implementierung erzeugt zwei (Funktions-) Objekte, die den Zustand teilen. Es ist idiomatisch in E, die Eingabe von der Ausgabe (Lesen von Schreiben) zu trennen, anstatt sie zu einem Objekt zu kombinieren. Die Struktur ist die gleiche wie die Implementierung von Standard DeviationE. Das Elixierprogramm unten erzeugt eine anonyme Funktion mit einer eingebetteten Periode p, die als Periode des einfachen gleitenden Durchschnitts verwendet wird. Die run-Funktion liest die numerische Eingabe und übergibt sie an die neu erstellte anonyme Funktion und prüft dann das Ergebnis auf STDOUT. Die Ausgabe ist unten gezeigt, mit dem Durchschnitt, gefolgt von der gruppierten Eingabe, die die Grundlage für jeden gleitenden Durchschnitt bildet. Erlang hat Verschlüsse, aber unveränderliche Variablen. Eine Lösung besteht dann darin, Prozesse und eine einfache Message passing based API zu verwenden. Matrixsprachen haben Routinen, um die Gleitabschnitte für eine gegebene Reihenfolge von Elementen zu berechnen. Es ist weniger effizient Schleife wie in den folgenden Befehlen. Fordert kontinuierlich einen Eingang I auf. Die dem Ende einer Liste L1 hinzugefügt wird. L1 kann durch Drücken von 2ND / 1 gefunden werden, und Mittelwert kann in Liste / OPS gefunden werden. Drücken Sie ON, um das Programm zu beenden. Funktion, die eine Liste mit den gemittelten Daten des bereitgestellten Arguments zurückgibt Programm, das bei jedem Aufruf einen einfachen Wert zurückgibt: list ist die gemittelte Liste: p ist die Periode: 5 gibt die gemittelte Liste zurück: Beispiel 2: Verwenden des Programms movinav2 (i , 5) - Initialisieren der gleitenden Durchschnittsberechnung und Definieren des Zeitraums von 5 movinav2 (3, x): x - neue Daten in der Liste (Wert 3), und das Ergebnis wird auf der Variablen x gespeichert und movinav2 (4, : X - neue Daten (Wert 4), und das neue Ergebnis wird auf Variable x gespeichert und angezeigt (43) / 2. Beschreibung der Funktion movinavg: Variable r - ist das Ergebnis (die gemittelte Liste), die zurückgegeben wird Variable i - ist die Index-Variable, und es zeigt auf das Ende der Unterliste die Liste gemittelt wird. Variable z - eine Helpervariable Die Funktion nutzt die Variable i, um zu bestimmen, welche Werte der Liste bei der nächsten Durchschnittsberechnung berücksichtigt werden. Bei jeder Iteration zeigt die Variable i auf den letzten Wert in der Liste, der in der Durchschnittsberechnung verwendet wird. Also müssen wir nur herausfinden, welcher der erste Wert in der Liste sein wird. Normalerweise müssen p Elemente berücksichtigt werden, also wird das erste Element dasjenige sein, das durch (i-p1) indexiert wird. Jedoch wird bei den ersten Iterationen die Berechnung gewöhnlich negativ sein, so daß die folgende Gleichung negative Indexe vermeiden wird: max (i-p1,1) oder die Anordnung der Gleichung max (i-p, 0) 1. Die Anzahl der Elemente auf den ersten Iterationen ist ebenfalls kleiner, der korrekte Wert (Endindex - Anfangsindex 1) oder die Anordnung der Gleichung (i - (max (ip, 0) 1) 1) , (I-max (ip, 0)). Die Variable z enthält den gemeinsamen Wert (max (ip), 0), so dass der Anfangsindex (z1) ist und die Anzahl der Elemente (iz) mid (Liste, z1, iz) .) Wird addieren Summe (.) / (Iz) ri wird sie durchschnittlich und das Ergebnis an der entsprechenden Stelle in der Ergebnisliste speichern Verwenden Sie eine Schließung und Erstellen einer Funktion Ich muss die letzten 7 Tage Arbeitsstunden in einer Wohnung zu halten Datei Lese-Schleife. Seine verwendet werden, um die Ermüdbarkeit von Arbeitsplänen zu messen. Im Moment habe ich etwas, das funktioniert, aber es scheint ziemlich ausführlich und Im nicht sicher, ob theres ein Muster, das mehr prägnant ist. Derzeit habe ich eine Java-Klasse mit einem statischen Array, um die letzten x-Tage-Daten halten, dann, wie ich durch die Datei zu lesen, hacke ich das erste Element und verschieben die anderen 6 (für eine Woche rollen insgesamt) zurück um eins. Die Verarbeitung dieses statischen Arrays erfolgt in seinem eigenen Verfahren, dh. Meine Frage: ist dies eine vernünftige Design-Ansatz, oder gibt es etwas blendend offensichtlich und einfach, diese Aufgabe zu tun Danke Jungs gefragt Aug 30 11 at 14:33 Vielen Dank Jungs: I39ve bekam die Nachricht: verwenden Sie ein übergeordnetes Objekt und nutzen Sie die Relevante Methoden oder einen Ringpuffer. Große Antworten, alle von ihnen. Wenn Sie darüber nachdenken, benötigen Sie immer Zugriff auf das gesamte Array, so können Sie loswerden, dass erste Eintrag - die ich war nicht sicher, auf eigene Faust. I39m erleichtert, dass ich hadn39t verpasste einige 1 Liner und war im Grunde auf eine vernünftige, wenn nicht effizient und knapp Track Dies ist, was ich liebe über diese Website: qualitativ hochwertige, relevante Antworten von Menschen, die ihre sht kennen. Ndash Pete855217 Aug 11, 2010, um 15:05 Uhr Warum initialisieren Sie runningTotal auf null Was ist der Typ, wo es deklariert Es wäre gut, wenn Sie einige Code-Beispiele, die tatsächlichen Java-Code ähneln setzen. Im Übrigen wäre meine Kritik die folgende: Ihre Funktion hat zu viel. Eine Funktion oder Methode sollte zusammenhängend sein. Entsprechend sollten sie eine Sache und eins nur tun. Schlimmer noch, was passiert in Ihrer for-Schleife, wenn x 5 Sie kopieren runningTotal6 in runningTotal5. Aber dann haben Sie zwei Kopien des gleichen Wertes an Position 5 und 6. In Ihrem Entwurf, Ihre Funktion bewegt / shuffles die Einzelteile in Ihrem Array berechnet die Gesamtabzüge Stuff zu Standardfehler liefert die Summe Es tut zu viel. Mein erster Vorschlag ist nicht zu bewegen Zeug um in der Array. Stattdessen implementieren Sie einen kreisförmigen Puffer und verwenden ihn statt des Arrays. Es vereinfacht Ihren Entwurf. Mein zweiter Vorschlag ist, Dinge in Funktionen zusammenzufassen, die zusammenhängen: haben Sie eine Datenstruktur (ein zirkularer Puffer), der Ihnen erlaubt, es hinzuzufügen (und das den ältesten Eintrag sinkt, wenn es seine Kapazität erreicht hat) Interator haben eine Funktion, die die Summe auf dem Iterator (Sie dont care, wenn Sie die Summe aus einem Array, Liste oder kreisförmigen bufer.) Dont aufrufen es insgesamt berechnet. Nennen Sie es Summe, die ist, was Sie berechnen. Das ist, was Id tun :) That39s große info luis, aber denken Sie daran, diese Funktion ist ein kleiner Teil der Funktionalität der Klasse, und es wäre Overkill zu viel Code hinzufügen, um es perfekt. Sie sind technisch korrekt, und ich verstehe, dass mein Code zu viel 39 macht, aber gleichzeitig ist es manchmal besser, auf der Seite des kleineren, klareren Codes zu irren als für Perfektion zu gehen. Angesichts meiner Java-Fähigkeiten, auch die Herstellung der Pseudocode Sie beschreiben kompilieren würde ich blasen mein Budget auf diese (), aber danke für die klare Beschreibung. Ndash Pete855217 Aug 31 11 at 2:23 Hmmm, es geht nicht um Perfektion, sondern um etablierte industrielle Praktiken, die wir seit den letzten 3 Jahrzehnten kennen. Sauberer Code ist immer einer, der partitioniert ist. Wir haben jahrzehntelange Evidenz, die zeigen, dass dies der Weg ist, um in den allgemeinen Fall zu gehen (in Bezug auf Kosteneffizienz, Defektverkleinerung, Verständnis usw.). Es sei denn, es ist Wegwerf-Code für eine einmalige Art der Sache. Es ist niemals teuer, dies zu tun, wenn man auf diese Weise eine Problemanalyse startet. Codierung 101, brechen das Problem und der Code folgt, weder Overkill noch schwierig) ndash luis. espinal Ihre Aufgabe ist zu einfach und die Vorgehensweise Sie angenommen haben, ist sicherlich gut für den Job. Allerdings, wenn Sie ein besseres Design verwenden möchten, müssen Sie loszuwerden, dass alle die Anzahl der Bewegung, die Sie besser eine FIFO-Warteschlange und machen gute Verwendung von Push-und Pop-Methoden, die Art und Weise der Code reflektiert keine Datenbewegung, nur die beiden logischen Aktionen Von neuen Daten und entfernen Sie Daten, die älter als 7 Tage sind. Beantwortet Aug 30 11 at 14:49


No comments:

Post a Comment