www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

Viviane

Gepostet:
08.11.2009 21:14

Laufindex in der Summe/Anfängerfrage  
Und zwar habe ich zwei Funktionen: einmal Summe a^l und einmal Summe b^(n-l).
Die funktionieren auch soweit.
Nur jetzt möchte ich eine dritte Funktion schreiben, die jeweils das ERSTE Glied von Summe a^l mit dem LETZTEN Glied von Summe b^(n-l) multipliziert, dann das zweite Glied von S a^l mit dem vorletzten Glied von Summe b^(n-l) und immer soweiter. Die ganzen Produkte soll er mir am Schluss aufsummieren.
Nur, irgendwie scheiterts schon an dieser verschachtelten Multiplikation. Hat jemand Ideen?
Zum Seitenanfang ICQ    
 
Siracusa

Gepostet:
09.11.2009 01:42

   
Hallo,

wie sehen denn deine beiden Funktionen aus, welchen Typ haben die? Summe a^l ist nur ne Formel, was macht die entsprechende Funktion dazu? Wahrscheinlich verwendest du da Listen, [a1, ..., an] und [b1, ..., bn] und willst jetzt Summe von [a1*bn, ..., an*b1] berechnen. Als Tipp mal die Funktion reverse anschauen, die dreht alle Elemente einer Liste um. Wenn du das mit einer der beiden Listen machst, sind deine zu multiplizierenden Elemente in beiden Listen jeweils an der gleichen Position. Und dann gibt es da noch die Funktion zipWith, mit der man zwei Listen mittels einer beliebigen Funktion (da dürfte sich * anbieten Smilie) zu einer neuen Liste verknüpfen kann.


Viele Grüße,

Siracusa
Zum Seitenanfang    
 
Viviane

Gepostet:
09.11.2009 15:52

   
Nein, keine Listen. Summe a^l spuckt mir genau das aus, nämlich a^1 +a^2 +a^3.....+a^l.

Füttern muss ich die Funktion dafür mit den Integers a und n, als Ergebnis kommt wieder ein Integer raus.

Im Prinzip dasselbe bei der zweiten Funktion.

Die Summe die ich raushaben will is in etwa das was Du schreibst, nur eben nicht als Liste sondern als Integer.
Zum Seitenanfang ICQ    
 
Siracusa

Gepostet:
09.11.2009 18:55

   
Ach sorry, hab die Aufgabe komplett falsch verstanden. Bis wo läuft denn Summe a^l, l=1..n? Und bei b^(n-l) dann l=0..n-1? Wenn ja, dann wäre das erste von a mit dem letzten von b multipliziert usw. wieder jeweils a^l*b^l mit l=1..n, d.h. die Funktion funktioniert wie die anderen, nur dass du a und b als Parameter übergibst.
Zum Seitenanfang    
 
Viviane

Gepostet:
09.11.2009 19:07

   
Richtig. Läuft bis n. Aber wie um Himmels Willen soll das gehen??????

Ich meine wie um Himmels Willen sollte eine solche Funktion aussehen?

Dritte Stunde Programmieren überhaupt und dann gleich sowas?

Ich meine wenn ich a und b als Parameter übergebe, was mache ich dann bitte mit diesem durchlaufenden Index? Ich versteh einfach überhaupt gar nix.

Zum Seitenanfang ICQ    
 
Siracusa

Gepostet:
09.11.2009 20:16

   
Na wenn du die anderen beiden Funktionen schon hast, sollte diese doch nicht so schwer sein. Wie hast du denn die anderen Funktionen programmiert, da muss du doch auch über alle l-Werte laufen?
Zum Seitenanfang    
 
Viviane

Gepostet:
09.11.2009 22:06

   
Ja schon. Aber immer über denselben l-Wert, nicht über 2 verschiedene.
Zum Seitenanfang ICQ    
 
Siracusa

Gepostet:
09.11.2009 22:18

   
Na ist ja hier auch bei a und b jeweils der gleiche l-Wert, zumindest wenn ich die Aufgabenstellung richtig verstanden habe. Und selbst wenn du zwei l-Werte hättest, wäre das auch kein Problem. Dann müsste beim einen eben immer +1, beim anderen -1 gerechnet werden.

Also ich stelle mir das grad so vor:
a^1 + a^2     + ... + a^(n-1) + a^n
b^n + b^(n-1) + ... + b^2 + b^1

Jeweils das erste mir dem letzten usw. ergibt:
a^1*b^1 + a^2*b^2 + ... + a^n*b^n

Das heißt in jedem Schritt ist bei a und b das l immer gleich.
Zum Seitenanfang