Friday 20 October 2017

Php Bevegelig Gjennomsnitt Matrise


Først bruker du 5 på et par steder i programmet, ser jeg ingen grunn til det. Kan det være at din forventning om brukerinngang fører deg til å sette 5 hvor nummeret du virkelig bør bruke, avhenger av brukerinngang. Kanskje du burde bruke vinduets størrelse i stedet jeg gjetter litt her. Neste, som lppEdd påpekte, leser du ikke tallene fra innspillet bare vinduets størrelse. Deretter erklærer du størrelsen på størrelsen n. som jeg tror var din vindu størrelse, ikke din matrise størrelse. Jeg tror den virkelige løsningen på dette problemet bruker bedre og mer forklarende variable navn. Koden din kompilerer ikke siden du ikke har oppgitt array avg som du prøver å lagre ditt bevegelige gjennomsnitt på. Femte, når du vil ha gjennomsnittet ditt som en dobbel. du må konvertere til dobbel før deling (dette er en klassisk fallgruve som allerede har generert mange spørsmål på Stack Overflow). Jeg håper dette får deg et par skritt videre. besvart 2 dager siden Det første du ser er at han bruker nextInt (), som bare returnerer et enkelt heltall, ikke en matrise. I utgangspunktet ville han bruke en serie fylt med nuller. ndash LppEdd 2 dager siden Ditt svar 2017 Stack Exchange, IncYour indre for er iterating all array så det er derfor du alltid får det samme gjennomsnittet (den for hele gruppen), du bør iterere fra 0 til det nåværende nummeret til det ytre for i stedet. Det bevegelige gjennomsnittet blir oppdatert basert på j i ditt indre, for det betyr at det vil tilsidesette tidligere verdier hver ny sløyfe, dette burde være innenfor det ytre for stedet for det indre som bruker jeg som indeks. Du deler sumj for å beregne gjennomsnitt, hver ny indre sløyfe j du vil dele med 0 første summen. Jeg tror du mente å bruke j1 i stedet, indeksen er ikke den samme som den nåværende lengden. Tips for feilsøking: Unngå å bruke variabler til loop-arrays, du bør bruke array. length i stedet. For å reprodusere problemet kan du gi oss det isolerte problemet i stedet for din nåværende kode. det vil si: Tenk deg om feilen er i dine innspillinger, hvordan kan vi tro at du virkelig brukte dem besvart 4. okt 13 kl 20:54 Du løser over alle dataene hver gang. Du bør ha for (int j (igteverageLengthi-averageLength2: 0) jlt iaverageLength2 ampamp jltnumDataPoints j) (eller noe lignende) for ditt innerste gjennomsnitt. Også, movingAverageisumj bør modifiseres for å håndtere saken når j er 0. Spesielt bør det sannsynligvis være movingAverageisumaverageLength og det skal påføres movingAveragei-sporet utenfor gjennomsnittsløkken. besvart 4. okt 13 kl 20:42 Neste gang, ta kommentarene til oppgaven ut av spørsmålet før du legger inn det. Men siden du virker ganske ny på dette, tenk på hvordan du ville gå gjennom dataene, og få det til å gjøre det. Du bør prøve å sørge for at hver løkke stopper på det riktige punktet, og husk at hvis du vil stoppe når det ikke er flere tall, (som når du gjør indre sløyfe, og du kan bare få 3 flere tall i stedet for 4) programmet må også stoppe. Kontroller at koden din sjekker etter dette. svarte 4. okt 13 kl. 20:56 Uten ytterligere detaljer, trenger du sannsynligvis et uvevet glidende gjennomsnitt. På et hvilket som helst punkt Ai i inngangsarmen A med lengde N (med 0ltiltN), er det bare middelverdien av de forrige K-oppføringene i gruppen, inntil og med Ai. Hvis det arent K slike verdier, så gjennomsnittlig (i1) verdiene fra A0 til Ai. inklusive. En liten tanke vil vise deg at du ikke trenger å legge opp alle K-verdier hver gang. Bare hold summen, og når du går videre til neste punkt (dette er et glidende gjennomsnitt), trekker du verdien som blir erstattet og legger til den nye verdien som erstatter den. (I løpet av de første K-1 poengene, legger du bare til den nye verdien til summen og øker telleren din med 1.) På hvert punkt i denne prosessen er glidende gjennomsnitt gjeldende sum dividert med gjeldende telleverdi. svarte 4. okt 13 kl 21:05 I et glidende gjennomsnitt må du ha en slags vindusstørrelse. Din vindusstørrelse er gjennomsnittligLengde, slik at den ser slik ut: For-sløyfen starter ved de nåværende dataene og går tilbake gjennomsnittligLengde datapunkter og legger til dem. Du vil bare ha et glidende gjennomsnitt når du har når du har nok datapunkter og gjennomsnittet blir summen delt med gjennomsnittlig lengde. Merk: Ikke testet bare sudo kode, men dette er ideen. svarte 4. okt 13 kl 21:05 Ditt svar 2017 Stack Exchange, Inctraderema traderema () - funksjonen virker ikke riktig. det beregner bare gjennomsnittet for siste periodeoppføringer. Følg følgende kode for traderema: funksjon EMACalculator (limit, array) EMApreviousday array0 printr (array) multiplikator1 (2limit1) EMAarray () EMA array0 Lukk array1 mens (limit) echoEMA er EMAn EMA (Close - EMApreviousday) multiplikator1 EMApreviousday EMApreviousday EMA limit - - returner EMA hvor grense godta perioden ema og array. aksepter array av data for ema calcul. If du vil sjekke om det for eksempel bare er strenger i en matrise, kan du bruke en kombinasjon av arraysum og arraymap slik: funksjon onlystringsinarray (arr) return arraysum (arraymap (isstring. arr) ) Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Arranger (arr1), onlystringsinarray (arr2), onlystringsinarray (arr3), onlystringsinarray (arr4)) gt Dette gir deg følgende resultat: bool (true) bool (false) bool (false) bool (false)

No comments:

Post a Comment