Trzeba śledzić ostatnie 7 dni pracy w płaskiej pętli odczytu plików To jest używany do pomiaru zmęczenia pracy rosters. Right teraz mam coś, co działa, ale wydaje się raczej verbose i nie jestem pewien, czy istnieje wzorzec, który jest bardziej succinct. Currently, mam klasę Java z tablicą statyczną do przechowywania ostatnich danych x dni, a następnie, gdy czytam w pliku, I ściąć z pierwszego elementu i przenieść inne 6 na tydzień toczenia całkowitego tyłu przez jeden Przetwarzanie tej tablicy statycznej odbywa się w jego własnej metodzie tj. pytanie. Czy to jest rozsądne podejście do projektowania, czy jest coś blindingly oczywiste i proste do tego zadania? Dzięki guys. asked Aug 30 11 at 14 33.Thanks alot faceci Mam wiadomość używam obiektu wyższego poziomu i wykorzystuję odpowiednie metody lub okrągły bufor Wielkie odpowiedzi, wszystkie z nich Kiedy myślisz o tym, zawsze potrzebujesz dostępu do całej tablicy, aby można było pozbyć się pierwszego wpisu - którego nie byłem pewien, pewien siebie, że odczuwam ulgę hadn t brakowało trochę 1 wykładziny i był w zasadzie na rozsądnym, jeśli nie skutecznym i skróconej ścieżce To, co kocham o tej stronie wysokiej jakości, trafne odpowiedzi od ludzi, którzy znają ich sh t Pete855217 30 sierpnia 11 w 15 05.Why możesz zainicjować runningTotal do null Co to jest jego typ Gdzie jest to zadeklarowałby dobrze, jeśli umieścisz kilka próbek kodu, które przypominają rzeczywisty kod Java. Moving na, moja krytyka byłaby następująca funkcja nie za dużo Funkcja lub metoda powinna być spójne Bardziej odpowiednio, powinni zrobić jedną rzecz i jedyną rzecz. Jeszcze gorsze, co się dzieje w pętli for, kiedy x 5 Skopiujesz uruchomionyTotal 6 do uruchomieniaTotal 5, ale masz dwie kopie tej samej wartości w pozycjach 5 i 6. W twoim projekcie twoja function. moves powoduje tasowanie elementów w tablicy. calculates total. prints stuff na standardowy error. wyczy to total. It robi za dużo. Moje pierwsza sugestia nie polega na przenoszeniu rzeczy w tablicy, zamiast tego zaimplementować okrągły bufor i użyj go zamiast tablica Uprości Twój projekt Moja druga sugestia polega na podziale rzeczy na funkcje, które są spójne. Tworzymy strukturę danych okrągły bufor, który pozwala na dodanie do niego i że spada najstarszą pozycję, gdy tylko osiągnie swoją zdolność. have danych Struktura implementuje interator. have Funkcja, która oblicza całkowitą liczbę iteratorów, które nie obchodzisz, jeśli obliczasz całkowitą liczbę z tablicy, listy lub okrągłego bufer. don t nazywaj to Całkowity Zadzwoń do sumy, czyli tego, To jest to, co robię. Co to jest świetny info luis, pamiętaj jednak, że ta funkcja jest małą częścią funkcjonalności tej klasy, a nadmierny wzrost kodu spowoduje, że będzie doskonały. Jesteś technicznie poprawny, a ja zrozumieć mój kod nie za dużo, ale w tym samym czasie czasami lepiej błądzić po stronie mniejszego, jaśniejszego kodu niż go na perfekcję Biorąc pod uwagę moje umiejętności Java, nawet czyniąc pseudokodę, którą opisujesz skompiluj, pozwoliłby mi obciąć mój budżet na to, ale dzięki za r jasny opis Pete855217 Aug 31 11 at 2 23.Hmmm, to nie chodzi o perfekcję, ale o ustalone praktyki przemysłowe, które znamy przez ostatnie trzydzieści lat Czysty kod to zawsze ten, który jest podzielony Mamy dziesięciolecia dowodów wskazujących na to jest droga do ogólnej sprawy pod względem efektywności pod względem kosztów, redukcji defektów, zrozumienia itp., chyba że jest to wyrzucony kod jednorazowego rodzaju rzeczy Nigdy nie kosztuje to zrobić, gdy rozpoczyna się analiza problemu w ten sposób kod 101 rozwiązuje problem i następuje kod, ani nadmierny, ani trudny 31 sierpnia 11 w 15 55. Twoje zadanie jest zbyt proste i aproach przyjąłeś z pewnością dobry do pracy Jeśli chcesz używać lepszym projektem, musisz pozbyć się wszystkich ruchów liczbowych lepiej posługiwać się kolejką FIFO i dobrze wykorzystać metody push i pop w taki sposób, aby kod nie odzwierciedlał żadnych ruchów danych, tylko dwa operacje logiczne nowych danych i usuwały starsze dane niż 7 dni. odpowiedzi 1 sierpnia 1 1 w 14 49.I zasadniczo mają tablicę wartości takich jak this. The powyżej tablicy jest uproszczony, I m zbieranie 1 wartość na milisekundy w moim prawdziwym kodzie i muszę przetworzyć wyjście na algorytm napisałem, aby znaleźć najbliższy szczyt przed punkt w czasie Moja logika nie powiedzie się, ponieważ w moim przykładzie powyżej, 0 36 jest prawdziwym szczytem, ale mój algorytm patrzyłby wstecz i zobaczył ostatnią cyfrę 0 25 jako szczyt, a następnie spadek do 0 24. Cel jest do podjęcia tych wartości i zastosować algorytm do nich, które będą wygładzić je trochę tak, że mam bardziej liniowe wartości tj. chciałbym moje wyniki być curvy, a nie jaggedy. I ve powiedziano, aby zastosować wykładniczy ruchomy filtr średnia do moje wartości Jak mogę to zrobić To naprawdę trudne dla mnie do czytania równań matematycznych, ja zajmuje dużo lepiej z kodu. Jak mogę przetworzyć wartości w mojej tablicy, stosując wykładniczą średnią ruchomą obliczyć nawet je out. asked Feb 8 12 at 20 27. Aby obliczyć wykładniczą średnią ruchoma, musisz zachować pewien stan wokół i potrzebujesz parametru strojenia To wymaga małej klasy przy założeniu, że używasz Java 5 lub późniejszej. Zanotuj się z parametrem zaniku, który chcesz wzbogacić, powinien wynosić od 0 do 1, a następnie użyć średniej do filtrowania. Kiedy czytasz stronę niektóre matematyczne powtórzenia, wszystko, co musisz wiedzieć, zmieniając je w kod jest taki, że matematycy lubią pisać indeksy do tablic i sekwencji z indeksami dolnymi. wystarczy pamiętać, że jedna stara wartość nie wymaga żadnej skomplikowanej tablicy stanowej. odpowiedzi 8 lutego w 20 42. TKKocheran Całkiem niezłe, jeśli rzeczy mogą być proste Jeśli zaczynasz od nowej sekwencji, pobierz nową uśrednioną uwagę Zauważ, że pierwsze kilka terminów w uśrednionej sekwencji skoknie nieco z powodu efektów granicznych, ale otrzymasz te z innymi średnikami ruchomymi zbyt. Jednak dobrą zaletą jest to, że można owinąć średnią logikę ruchu do uśrednionego i eksperymentu bez d stwarza resztę swojego programu za dużo Donal Fellows 9 lutego 12 w 0 06. Mam trudności ze zrozumieniem pytań, ale spróbuję odpowiedzieć anyway.1 Jeśli twój algorytm znalazł 0 25 zamiast 0 36, to jest źle Jest niewłaściwe, ponieważ zakłada monotoniczny wzrost lub spadek, który zawsze się zmienia i zawsze się dzieje Jeśli nie prześlesz wszystkie dane, punkty danych --- jak je prezentujesz --- są nieliniowe Jeśli naprawdę chcesz znaleźć maksymalna wartość między dwoma punktami w czasie, a następnie rozłożyć tablicę z tmin na tmax i znaleźć maksimum tej podbudówki.2 Teraz koncepcja przenoszenia średnich jest bardzo prosta wyobraź sobie, że mam poniższą listę 1 4, 1 5, 1 4 , 1 5, 1 5 Mogę to wygładzić, biorąc średnią z dwóch liczb: 1 45, 1 45, 1 45, 1 5 Zauważ, że pierwszy numer to średnia 1 5 i 1 4 sekundy, a pierwsza liczba druga nowa lista jest średnią z 1 4 i 1 5 trzeciej i drugiej starej listy trzeciej nowej listy średnio 1 5 i 1 4 czwarte i trzecie, a więc na ja mogłem uczynić to okresem trzy lub cztery lub n Zauważ, że dane są dużo gładsze Dobrym sposobem na poruszanie się średnio w pracy jest przejście do Google Finance, wybierz czas, w którym próbujesz Tesli Motors dość niestabilną TSLA i kliknij na technicals at na dole wykresu Wybierz Średnia ruchoma z danym okresem i Średnia ruchoma wykładnicza w celu porównania ich różnic. Średnia ruchoma jest raczej kolejnym opracowaniem, ale odważa starsze dane mniej niż nowe dane, a to jest sposobem na złagodzenie wygładzania w kierunku tyłu Proszę przeczytać wpis w Wikipedii. Więc to jest więcej komentarza niż odpowiedź, ale małe pole komentowania było tylko małe. Powodzenia. Jeśli masz kłopoty z matematyką, możesz iść z prostą średnią ruchoma zamiast wykładniczej Więc otrzymane wyjście to ostatnie x-y podzielone przez x niepożądaną pseudokodę. Zauważ, że będziesz musiał obsłużyć początek i koniec części danych, ponieważ wyraźnie możesz średnio 5 ostatnich warunków, gdy jesteś na twoim drugim data poin t Również istnieją bardziej wydajne sposoby obliczania tej średniej sumy ruchomej - najstarszej najnowszej, ale jest to, aby uzyskać pojęcie tego, co się dzieje. W odpowiedzi na pytanie 8 lutego na 20 41.I m w procesie tworzenia handlu forex algorytm i chciałem spróbować mojego strzału przy obliczaniu średnich ruchów wykładniczych EMA Moje wyniki wydają się poprawne w porównaniu do obliczeń zrobionych ręcznie, więc wierzę, że następująca metoda działa, ale po prostu chciał uzyskać dodatkowy zestaw oczu, aby upewnić się, że im nie brakuje nic. Zauważ, że to zwraca EMA po ostatniej cenie, nie zwraca tablicy EMA, ponieważ nie jest to, czego potrzebuję dla mojej aplikacji. Rekcja jest dobrym narzędziem dla właściwej pracy, ale tutaj jest używane aby osiągnąć prostą pętlę jako taki code. is jest trudniejsze do odczytania i powodu about. is wolniej, ponieważ wiele kodu w ema wystarczy tylko raz uruchomić. W przypadku awarii z wystarczająco dużą wartością okna z powodu przepełnienia wywołania Python s. Jest dokumentują co najmniej parametry każdego z nich funkcja, np. okno to długość okna, a pozycja ta liczy się od końca danych W rzeczywistości rzeczy byłyby jaśniejsze, gdyby pozycja była normalnym indeksem do przodu w dane. Rejczy wyjątek, gdy znajdziesz parametr ma nieprawidłową wartość Powrót nie będzie tylko powodować bardziej mylący wyjątek później W rzeczywistości, jeśli próbuję 600 dostaję nieskończoną rekurencję, ponieważ sma zwraca Brak, który powoduje, że ema wywołuje sma w kółko. Następny punkt pokazuje również, że jeśli okno danych len 2 nie jest prawidłowe sprawdzenie poprawności. 1 w danych - window 2 1 - window 1 don t wydaje mi się poprawne Myślę, że chcesz mieć dane - window 2 - window. Zarządanie returnema previousema jest w dziwnym miejscu, ponieważ w tym momencie obliczyłeś nowy currentema Jest to podstawa przypadku rekursji, a standardowe jest, aby poradzić sobie z bazą przypadku first. My wniosek ema. answered 26 listopada 14 w 18 56.Pretty płytkie review. You don t trzeba napisać klasę za to, co jesteś robiąc i proponuję spojrzeć na ten film Twoja klasa nie zawiera żadnych danych i po prostu używasz go, aby mieć te funkcje w tej samej jednostce Chyba łatwiej byłoby zrozumieć, jeśli miałeś zdefiniować metodę classmethod, aby było oczywiste, że wygrałeś naprawdę polegając na jakiejkolwiek instancji Jeszcze lepszym rozwiązaniem byłoby właśnie zdefiniowanie funkcji w module wskaźników. Odpowiedzi na 24 listopada 14 w 18 04. Dzięki za sugestie rzeczywiście miałem je jako metoda klas i debatowałem tam iz powrotem między nawet przy użyciu klasy lub po prostu definiowanie funkcje w module wskaźników, które teraz będę robił ChrisC 25 listopada w 19 12.Chceliśmy też obejrzeć film, świetne rzeczy ChrisC 25 listopada w 19 43. Odpowiedź2017 Stack Exchange, Inc.
Comments
Post a Comment