Gepostet: |
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 | ||||||||||
Gepostet: |
|||||||||||
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 ) zu einer neuen Liste verknüpfen kann. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
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 | ||||||||||
Gepostet: |
|||||||||||
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 | |||||||||||
Gepostet: |
|||||||||||
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 | ||||||||||
Gepostet: |
|||||||||||
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 | |||||||||||
Gepostet: |
|||||||||||
Ja schon. Aber immer über denselben l-Wert, nicht über 2 verschiedene. | |||||||||||
Zum Seitenanfang | ICQ | ||||||||||
Gepostet: |
|||||||||||
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 Das heißt in jedem Schritt ist bei a und b das l immer gleich. |
|||||||||||
Zum Seitenanfang | |||||||||||