Zerlegungen einer ganzen Zahl bestimmen und ausgeben.



  • Hi,

    ich hoffe mir kann einer helfen. ich bräuchte eine Funktion die alle Zerlegungen einer ganzen Zahl bestimmt und ausgibt. Die Partitionen werden in einen vektor von Vektorn abgelegt.
    Beispiel die Zahl 4.
    4
    3+1
    2+1+1
    2+2
    1+1+1+1
    Danke schon mal im Voraus 😕



  • Hast du ein konkretes Problem mit der Sprache?



  • Hi,

    ich habe ein Problem mit der Sprache, ich muß sie noch lernen, bin nämlich noch Programmier-Anfänger und weiß nicht wie ich diese funktion erstellen soll.

    Gruß Ficarra



  • Hallo,

    es bleibt die schon gestellte Frage, wo du ein Problem bei der Umsetzung bzw. mit der Sprache hast. Es kann (oder sollte zumindest) ja nicht sein, daß du überhaupt keinen Ansatz oder grundsätzlich das Problem hast, kein Stück Code schreiben zu können. Deklarationen, Definitionen, Code-Stücke zumindest, sollten zeigen, wo du gerade hängst (wie gesagt, daß du überhaupt keinen Teil schreiben kannst, glaube ich nicht). Es sind zwar viele hier, die dir alles zeigen könnten, aber ohne eigenen Ansatz von dir vielleicht nicht zeigen wollen (macht ja auch keinen Sinn, wenn du nicht selbst die Features der Sprache erkundest). Sollte dir der Algorithmus unklar sein, dann überlege doch erst einmal, wie du selbst versuchen würdest, auf dem Papier die Summanden-Zerlegungen einer Zahl herauszubekommen, und dann entsteht doch sicher schon ein erster Code-Ansatz, oder?

    MfG



  • hi,

    ich hab es versucht, aber ich komme nicht auf den Algorithmus der Funktion.
    Keiner hatte einen Ansatz.

    mfg



  • also so auf anhieb komm ich auch net drauf...rekursive primzahlenzerlegung ginge vielleicht, aber die funktion wird riesig...

    //edit primzahlenzerlegung ist nicht das richtige wort.
    //edit2 der verwaltungsaufwand wäre desweiteren enorm...
    jede der rekursiven funktionen muss die rückgabe arrays der von ihr aufgerufenen funktionen verwalten, und doppelte werte rauslöschen.
    ich hab jetzt keinen taschenrechner zur hand, aber ich schätze mal, der zeitaufwand steigt exponential zur steigung der zu berechnenden Zahl.


Anmelden zum Antworten