Exclusve Präfixsumme

valentina2013

Bekanntes Mitglied
Hallo ihr lieben,
ich brauche schon wieder eure Hilfe. Folgende Fragestellung:drei Arrays:
Java:
double x[] = new double[N];
		double s[] = new double[N-W+1];
		double p[] = new double[N+1];
von denen
Java:
 x[]
eine messungsergebnis,
Java:
p[]
die exclusive präfixsummen von
Java:
 x[]
und
Java:
s[]
der Mittelwert von W aufeinanderfolgenden werten speichert.Da aber die summe aufeinander folgenden zahlen in
Java:
p[]
schon gespeichert ist musste ich nun dies nutzen(So dei Aufgabenstellung);
Z.B.:
Java:
s[i]=p[w]/w;
s[i+1]=(p[2*w]-p[w])/w;
s[i+2]=(p[4*w]-(p[2*w]-p[w]))/w;
usw...
ich weiss aber nicht wie ich es programmieren soll :(
könnt ihr mir bitte helfen?

vg
 

Natac

Bekanntes Mitglied
Beschreib mal bitte genau was du hast und was du damit ermitteln musst. Im Moment finde ich es nicht klar, wo genau dein Problem ist.
 

valentina2013

Bekanntes Mitglied
Die Aufgabenstellung:
An einer Autobahn soll eine Lärmschutzmauer gebaut werden. Dafür haben Ingenieure vom Umweltbundesamt für jeden Meter den Geräuschpegel in Dezibel ermittelt, um daraus einen kontinuierlichen Belastungswert zwischen 0.0 und 1.0 abzuleiten. Die Reihe der Belastungswerte soll in einem Double-Array double x[N] der Länge N abgespeichert werden, d. h. im Eintrag x steht der Belastungswert an Meter i der Autobahn. Da diese Messungen oft fehlerbehaftet sind und manchmal zu Ausreißern führen, hat man sich entschieden, nicht nur den Wert an Meter i anzugeben sondern auch noch die nächsten drei Meter in die Berechnung einer robusten Schätzung des echten Belastungswerts einzubeziehen. Infolgedessen berechnet sich die Schätzung des Belastungswerts s für den Index i als Mittelwert von vier aufeinanderfolgenden Messwerten:
(1)Erstellen Sie mithilfe zweier verschachtelter for-Schleifen ein lauffähiges Java-Programm, das die Einträge des Arrays
s berechnet und auf der Kommandozeile ausgibt.
(2)Sie berechnen, die sogenannte exklusive Präfixsumme von x. Dabei berechnet man ein Array double p[N+1]
der Länge N+1,
Java:
double x[] = new double[N];
		double s[] = new double[N-W+1];
		double p[] = new double[N+1];
		
		for (int i = 0; i < N; i++) { 
			x[i] = reader.nextDouble();
			p[i+1] = p[i] + x[i];
		}
		
		for (int i=0; i < N-W+1; i++) {
Überlegen Sie, wie Sie mithilfe der exklusiven Präfixsumme p und einer for-Schleife das Array der Schätzungen s
berechnen können.

So, der 1 erste Teil habe ich schon, muss nur der zweite Teil der Aufgabe machen. Dafür muss ich jetzt aber die Mithilfe der erster Schleife berechnete Präfixsummen benutzen.

ich hoffe es ist jetzt verständlicher.
lg
 

njans

Top Contributor
Nunja, anscheinend ist array 's' ja nur eine Durchschnittsberechnung über 4 Werte. Mittels der Präfixsumme kennst du ja die Summen der Belastungswerte. Du musst ja dann nur noch p - p[i-3] berechnen und du hast die Summe der Belastungen von i-3 bis i. Diese kannst du dann einfach normalisieren.

Ich vermute mal W ist dann die Anzahl der Werte die für die robuste Messwertschätzung einbezogen werden?
 

russianbrother

Neues Mitglied
Also mein Lösungsansatz wäre:
Man lässt eine for-schleife von 0 bis zu (N-W+1) laufen, da das Index von p[] nur aus N+1 Einträgen besteht. Um s[] zu berechnen gilt folgendes:
Z.b. Sei W = 4.
sei x := { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
mit index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
dann gilt:
s[0] = (x[0] + x[1] + x[2] + x[3]) / W = 10/4
s[1] = (x[1] + x[2] + x[3] + x[4]) / W = 14/4
s[3] = (x[2] + x[3] + x[4] + x[5]) / W = 18/4
usw.

da p := { 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55 }
mit index 0, 1,, 2,, 3, 4,, 5,,, 6,,, 7,,, 8,, 9, 10
(Ich habe den Index extra unter der Menge geschrieben, deshalb sind so viele Kommas da)
dann gilt:
s[0] = (p[0 + W] - p[0]) / W = 10/4
s[1] = (p[1 + W] - p[1]) / W = 14/4
s[2] = (p[2 + W] - p[2]) / W = 18/4
usw.

Jetzt erkennt man sicherlich die richtige Struktur, die man mit einer for-Schleife nun programmieren kann.

Viele Grüße
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Exklusive Präfixsumme Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben