Wie schreibt man eine Funktion, welche die Gaußsche Summenformel berechnet in Python?
3 Antworten
def gauss(min,max):
return sum(range(min,max+1))
Nachtrag: Wie ralphdieter korrekterweise anmahnt, geht es bei der Summenformel darum sich das aufsummieren zu ersparen, dann wären wird bei:
def gauss (n):
return n*(n+1)/2
Und man könnte das natürlich auch allgemein für die arithmetische Reihe umsetzen.
Wie ralphdieter korrekterweise anmahnt
Eigentlich war es paaauleee, der es zuerst bemerkt hat. Ich hab's nur gleich weitergeplappert, weil mir Rummeckern so viel Spaß macht.
mindestens eienr der Faktoren n, n+1 sollte gerade sein udn somit den Primfaktor 2 enthalten - oder habe ich etwas nicht bedacht?
Wenn dann vielleicht eher n auf int casten?
In Python 2 war int/int ⇒ int. In Python 3 ist int/int immer float (4/2 ⇒ 2.0). Die gute alte Integerdivision wird von int//int übernommen (das auch in den letzten Python-2-Versionen funktioniert).
Bei gauss() ist klar, dass eine ganze Zahl herauskommt. Aber 10*(10+1)/2 ist exakt 55.0, und 10*(10+1)//2 ergibt runde 55 :)
Man könnte das Ergebnis auch casten, aber ich vermute, dass das weniger effizient ist.
Du hast natürlich recht, da habe ich gar nicht mehr dran gedacht.
War mir klar. Ich habe es nur so ausführlich beschrieben, damit die Fragestellerin auch was davon hat.
return sum(i for i in range(1,n + 1)
und das setzte jetzt in eine Funktion - n bestimmst du selber
Och nöö doch nicht gleich die Lösung, wie sollen die Leute denn was lernen bei ihren Hausaufgaben.
doch nicht gleich die Lösung
ist ja auch nur der Anfang. Da ist noch genug Eigenarbeit zu leisten – zähl mal die Klammern ;-)
ich Schusselchen :-D - im Grunde gehts sogar noch viel viel einfacher ohne List Comprehension
ich Schusselchen
Da muss ich mich anschließen. Normalerweise muss dieses Beispiel herhalten, um Schleifen zu üben, aber diese Aufgabe sagt ja ausdrücklich „Gaußsche Summenformel“, und nicht „Summe aller Zahlen“.
Du schreibst eine Funktion, welche deine Werte als entsprechende Eingabeparameter entgegennehmen kann, berechnest die Summe in der Funktion und returnst den Wert.
Das ist nicht die Gaußsche Summenformel.
Willkommen im Club :-)