Einzelnen Beitrag anzeigen
Alt 19.06.09, 16:13   #4 (permalink)
Ook!
 
Registriert seit: 21.04.08
Ook! Leistung: Facit NTK
Likes: 0
Standard

Python
Code:
def suminverse(n, rs=set(), xs=[]):
    if sum(xs) == n and sum(map(lambda x: 1.0/x, xs)) == 1:
        rs.add("%i -> %s" % (n, sorted(xs)))
        return rs
    elif sum(xs) > n:
        return
    for i in range(2, n/2+1):
        if suminverse(n, rs, xs+[i]):
            return rs

for r in suminverse(9): print r
Vielleicht ist das ja ein Anreiz für einige Leute, den Code zu optimieren.
Einige Optimierungsmöglichkeiten kann man recht schnell erkennen, wenn man sich die Ergebnisse anschaut, die für kleinere Zahlen ausgegeben werden q0]

Gruß
Felix
Ook! ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61