Dynamisch viele Listen erstellen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
iiischa
User
Beiträge: 8
Registriert: Sonntag 4. November 2012, 20:47

Wooow, vielen Dank für die Mühe an alle!!
Wie verhält es sich denn bei dem Leibnizschen Harmonischen Dreieck? (http://de.wikipedia.org/wiki/Harmonisches_Dreieck) Kann man das wohl auch mit Koeffizienten lösen?

Edit: Also ich habe das zwar jetzt gelöst, aber es werden ja immer noch Listen ausgegeben. Was habe ich denn für Möglichkeiten, Das Ausgegebene zu "verschönern", das heißt die eckigen Klammer weg machen oder es in einem gleichschenkligen Dreieck darstellen?

Vielen vielen Dank für eure Hilfe nochmal, das hat mich alles wirklich unglaublich weitergebracht.
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

iiischa hat geschrieben:Wie verhält es sich denn bei dem Leibnizschen Harmonischen Dreieck? (http://de.wikipedia.org/wiki/Harmonisches_Dreieck) Kann man das wohl auch mit Koeffizienten lösen?
Auf der von dir verlinkten Wikipediaseite steht die Formel direkt unter der Zeile: "Ein Zusammenhang mit den Binomialkoeffizienten des Pascalschen Dreiecks ist gegeben durch".
In specifications, Murphy's Law supersedes Ohm's.
iiischa
User
Beiträge: 8
Registriert: Sonntag 4. November 2012, 20:47

Danke, das habe ich jetzt auch gelöst :)
aber wie kann ich das ausgegebene dann "schöner" darstellen?
Weil ich ja jetzt nicht mehr mit vielen Listen arbeite, die ich evtl. kürzen könnte.
Gibt es so etwas wie ein Modul oder ein builtin, das mir erlaubt, das ausgegebene zu "verschönern"?
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Probier mal sowas:

Code: Alles auswählen

from math import factorial


def p(n, k):
    return factorial(n) / (factorial(n - k) * factorial(k))


def pascals_triangle(m):
    return [[p(x, y) for y in xrange(x + 1)] for x in xrange(m)]


def h(n, k):
    return 1, k * p(n, k)


def harmonic_triangle(m):
    return [[h(x, y) for y in xrange(1, x + 1)] for x in xrange(1, m + 1)]


def print_christmas_tree(triangle):
    m = len(triangle)
    for row in triangle:
        out = '  '.join('1/{0:<4}'.format(d) for n, d in row)
        print '    ' * (m - len(row)), out

print_christmas_tree(harmonic_triangle(7))
Ergebnis:

Code: Alles auswählen

                         1/1
                     1/2     1/2
                 1/3     1/6     1/3
             1/4     1/12    1/12    1/4
         1/5     1/20    1/30    1/20    1/5
     1/6     1/30    1/60    1/60    1/30    1/6
 1/7     1/42    1/105   1/140   1/105   1/42    1/7
In specifications, Murphy's Law supersedes Ohm's.
Antworten