![]() |
---|
Hallo zusammen, ich habe die Aufgabe, jede Zahl in einer Menge von Zahlen mit jeder zu addieren. Es handelt sich dabei um positive ganze Zahlen. Ein Beispiel: Ich habe folgende Zahlenmenge: Nun müssen alle möglichen Additionen ausgeführt werden: 1 2 3 4 Ich frage mich, ob es dafür vielleicht eine Funktion oder eine bestimmte Vorgehensweise gibt. Kann dazu im Internet nichts brauchbares finden. Zum Hintergrund: Es ist eine Programmieraufgabe, die mit Java gelöst werden soll. Es kann sein, dass es dafür keine einfache Formel gibt, dachte aber ich frage erst mal hier nach, bevor ich damit anfange, umständliche Schleifen zu programmieren. Schonmal Danke und Gruss, kaktus Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich benötige bitte nur das Ergebnis und keinen längeren Lösungsweg." |
Hierzu passend bei OnlineMathe: Funktion (Mathematischer Grundbegriff) Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
Wenn die Zahlen sind, dann suchst Du alle Summen mit oder . Einfachere Formeln gibt's leider nicht. Aber zu programmieren ist es doch einfach, meine ich. Du kannst sogar eine Schleife machen, von bis , wenn Du die binäre Darstellung von nutzen würdest. ;-) |
![]() |
Tut mir leid, aber ich verstehe deine Antwort nicht ganz. Die Formel oben ist mir ja noch einigermassen klar, aber was meinst du damit, den binären Wert von zu nutzen? Wie kann mir das helfen, respektive wie setze ich das ein? |
![]() |
Jede Zahl von bis kann man binär als schreiben, mit allen oder . Z.B. wenn Du 7 Zahlen hast, kannst Du als schreiben und als . So, und jetzt kann ich diese Darstellung in der Schleife nutzen. Z.B. im Beispiel mit würde es so gehen: i=0 => binäre Darstellung => Summe i=1 => binäre Darstellung => Summe i=2 => binäre Darstellung => Summe i=3 => binäre Darstellung => Summe ... i=15 => binäre Darstellung => Summe Ein praktische Programm schreibe ich später, falls Du es dann noch brauchst (aber in Python, Java hab ich schon vergessen). Upd: mit bis war es falsch, deshalb habe ich das korrigiert. |
![]() |
mhh ok Vielen Dank für deine Hilfe, werde mal versuchen das umzusetzen. Du musst dir nicht extra die Mühe machen, das ganze auszuprogrammieren. Falls ichs nicht schaffe komme ich nochmals auf dich zurück :-) Nochmals Danke, Gruss kaktus |
![]() |
Hallo DrBoogie, ich bins nochmal. Ich kriege es tatsächlich nicht hin. Versuche es schon seit Stunden, aber bin wohl einfach zu doof. Wäre froh, wenn du mir nochmals unter die Arme greifen könntest und mir deine Lösung mit Python zeigen würdest. Vielen Dank! Gruss, kaktus |
![]() |
Hi, hier mein Prog, scheint zu funktionieren. number=4 for i in range(2**number): sum=0 bin_list=[] rest=i while (rest>0): bin_list.append(rest%2) rest=int(rest/2) for j in range(len(bin_list)): sum=sum+(j+1)*bin_list[j] print bin_list print sum Kleine Erklärung: die while-Schleife "zerlegt" die Zahl in ihre binäre Folge, welche in die Liste bin_list geschrieben wird. Also ist bin_list am Ende der äußeren Schleife die binäre Darstellung von i - zu sehen durch print. Die Summe wird in sum geschrieben und am Ende jedes Durchlaufs der äußeren Schleife ausgegeben. Falls noch Fragen - gerne. Update. Kleine Korrektur im Prog gemacht. Und ACHTUNG! Python-Prog muss man richtig formatieren, sonst wird's nicht laufen. |
![]() |
Habs hingekriegt, danke für deine Hilfe. Gruss kaktus |