Partitionen einer Zahl

Neue Frage »

Dopap Auf diesen Beitrag antworten »
Partitionen einer Zahl
zu einer beliebigen natürlichen Zahl z soll die Anzahl der Partitionen unter der Verwendung von Elementen der Menge
bestimmt werden. 6
Die algebraische CAS Lösung mit Produkten von Polynomen als Koeffizient von wird rasch unhandlich.
Als Programm in C++ geht es erstaunlich weit wie schon HAL9000 zeigen konnte ---> Münzwechsler.

Diese Identität gilt es mMn auf einem möglichen Weg zu einer Formel zu bearbeiten:

(*)




Für die Partitionen-Anzahl von z.B. z=4711 müsste man beim algebraischen Weg die linke Seite "ausmultiplizieren",
ordnen und nach dem Koeffizienten von suchen.
Viel Spass dabei. Das here Ziel ist, die beide Seite so zu bearbeiten bis eine Formel dasteht. Viel Feind viel Ehr'
Ob das geht ist offen, wichtig ist, dass das Geschriebene zumindest nicht falsch ist. :-)

die blaue Identität könnte man doch 6-1=5 mal differenzieren:

oder vermutlich nützlicher, die 6 ins Spiel bringt:



oder allgemein
Dopap Auf diesen Beitrag antworten »

nur mit Latex Laptop und einer Hand zieht sich das...

--------------------

kann man mit erweitern zu =




in (*) eingesetzt und etwas umgeformt erhält man als rechte Seite von (*)




oder mittels



und den roten Faktor umgeschrieben:

HAL 9000 Auf diesen Beitrag antworten »

Eigentlich nicht so schwer - weiß gar nicht, warum ich im anderen Thread nicht dran gedacht habe: Bilde die komplexe Partialbruchzerlegung der rechten Seite von

.

Jeden einzelnen Summand dieser PBZ hat die Struktur mit irgendeiner Einheitswurzel von 1. Nun ist



die zugehörige Potenzreihe. Diese Summanden nun über alle in der PBZ auftretenden Tripel aufaddieren bekommt man Koeffizient , d.h. dessen explizite (!) Darstellung. Na dann, fröhliche Bastelei!
Dopap Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
... Na dann, fröhliche Bastelei!

Du machst mir damit an Deinem 10. Jahrestag nicht gerade Mut :-(

Komplexe PBZ ist schon ein Weilchen her ( genauer > 40 Jahre ) und möchte jetzt erst ein mal versuchen,
ob es auf dem eingeschlagenen Weg irgendwie weiter geht.
Beim großen Fermat hat es bekanntlicher weise auch eine beträchtliche Zeit gedauert ... Lol
HAL 9000 Auf diesen Beitrag antworten »

Ich will es mal am einfachen Beispiel demonstrieren (also Summe aus 1ct- und 3ct-Stücken):



Damit ist dann



Könnte man jetzt noch "reell" machen, d.h. mit Sinus/Kosinus schreiben:

.

Musst du jetzt "nur" noch analog auf anwenden. smile


Es lässt sich immerhin schon einiges sagen zu diesem aufgrund dieser Linearkombinationen solcher Werte :

1) Aufgrund des für Einheitswurzeln geltenden liegt bei kein exponentielles, sondern nur polynomiales Wachstum vor, und zwar bei deinem Problem vom Grad 5, der nur erreicht wird für den Summanden für .

2) All die anderen Summanden sind Polynome vom Grad <5 und verknüpft mit irgendwelchen Sinus/Kosinusfaktoren, die lokale Schwankungen um die Haupttrendfunktion vom Grad 5 (aus 1) ) repräsentieren. Für verblasst deren (relativer) Anteil natürlich immer mehr.
Dopap Auf diesen Beitrag antworten »

sieht gepflegt aus, muss das im Blick behalten ...

---------------------------------------



und den roten Faktor umgeschrieben:

eingesetzt und mit erweitert folgt:




und die große Klammer ergibt:



und insgesamt damit


das Latex nervt, reicht jetzt
 
 
HAL 9000 Auf diesen Beitrag antworten »

Ich frage mich, ob deine Hin- und Herumformerei der Kreisteilungspolynome irgendeinem Ziel folgt. Falls ja, bin ich wohl zu blind, es zu erkennen. smile
URL Auf diesen Beitrag antworten »

Immerhin habe ich jetzt den Dunst einer Ahnung, wie in einer Anzahlformel trigonometrische Funktionen auftauchen können smile
Dopap Auf diesen Beitrag antworten »

Idee; jetzt stehen 2 gleiche Nenner rechts und man könnte noch einen weiteren ( blauen) Bruch



auf ähnliche weise



auf denselben Nenner bringen.



und auch noch die doppelten und zugleich 1. quadratischen Bruch derart verarzten:

oder



der Weg ist das Ziel ...
HAL 9000 Auf diesen Beitrag antworten »

Ok, jetzt verstehe ich langsam, was du vorhast: All die Nennerfaktoren sind Teiler von . Jetzt erweiterst du die alle (bis auf den letzten, wo das gar nicht nötig ist) und bekommst



mit einem (mit moderatem Aufwand) berechenbaren Polynom (vom Grad 409 übrigens), und erhältst insgesamt die Reihe .

Das ermöglicht dann zwar keine "geschlossene" Formel für die , sondern eine mit 100 Fällen für die Indizes , aber dafür ist jeder der Fälle schön reell und in einer übersichtlichen Formel mit maximal 5 Summanden möglich. Das ermöglicht es nun, ein einzelnes für einen sehr großen Index unmittelbar auszurechnen - Gratulation, deine Beharrlichkeit hat sich ausgezahlt. Freude


Ich geb mal noch ungefiltert per Copy+Paste an, was MuPad für p(x) ermittelt hat:
code:
1:
x^409 + x^408 + x^407 + x^406 + x^405 + 2*x^404 + 2*x^403 + 2*x^402 + 2*x^401 + 2*x^400 + 4*x^399 + 4*x^398 + 4*x^397 + 4*x^396 + 4*x^395 + 6*x^394 + 6*x^393 + 6*x^392 + 6*x^391 + 6*x^390 + 9*x^389 + 9*x^388 + 9*x^387 + 9*x^386 + 9*x^385 + 13*x^384 + 13*x^383 + 13*x^382 + 13*x^381 + 13*x^380 + 18*x^379 + 18*x^378 + 18*x^377 + 18*x^376 + 18*x^375 + 24*x^374 + 24*x^373 + 24*x^372 + 24*x^371 + 24*x^370 + 31*x^369 + 31*x^368 + 31*x^367 + 31*x^366 + 31*x^365 + 39*x^364 + 39*x^363 + 39*x^362 + 39*x^361 + 39*x^360 + 50*x^359 + 50*x^358 + 50*x^357 + 50*x^356 + 50*x^355 + 62*x^354 + 62*x^353 + 62*x^352 + 62*x^351 + 62*x^350 + 77*x^349 + 77*x^348 + 77*x^347 + 77*x^346 + 77*x^345 + 93*x^344 + 93*x^343 + 93*x^342 + 93*x^341 + 93*x^340 + 112*x^339 + 112*x^338 + 112*x^337 + 112*x^336 + 112*x^335 + 134*x^334 + 134*x^333 + 134*x^332 + 134*x^331 + 134*x^330 + 159*x^329 + 159*x^328 + 159*x^327 + 159*x^326 + 159*x^325 + 187*x^324 + 187*x^323 + 187*x^322 + 187*x^321 + 187*x^320 + 218*x^319 + 218*x^318 + 218*x^317 + 218*x^316 + 218*x^315 + 252*x^314 + 252*x^313 + 252*x^312 + 252*x^311 + 252*x^310 + 287*x^309 + 287*x^308 + 287*x^307 + 287*x^306 + 287*x^305 + 325*x^304 + 325*x^303 + 325*x^302 + 325*x^301 + 325*x^300 + 364*x^299 + 364*x^298 + 364*x^297 + 364*x^296 + 364*x^295 + 406*x^294 + 406*x^293 + 406*x^292 + 406*x^291 + 406*x^290 + 449*x^289 + 449*x^288 + 449*x^287 + 449*x^286 + 449*x^285 + 493*x^284 + 493*x^283 + 493*x^282 + 493*x^281 + 493*x^280 + 538*x^279 + 538*x^278 + 538*x^277 + 538*x^276 + 538*x^275 + 584*x^274 + 584*x^273 + 584*x^272 + 584*x^271 + 584*x^270 + 631*x^269 + 631*x^268 + 631*x^267 + 631*x^266 + 631*x^265 + 679*x^264 + 679*x^263 + 679*x^262 + 679*x^261 + 679*x^260 + 722*x^259 + 722*x^258 + 722*x^257 + 722*x^256 + 722*x^255 + 766*x^254 + 766*x^253 + 766*x^252 + 766*x^251 + 766*x^250 + 805*x^249 + 805*x^248 + 805*x^247 + 805*x^246 + 805*x^245 + 845*x^244 + 845*x^243 + 845*x^242 + 845*x^241 + 845*x^240 + 880*x^239 + 880*x^238 + 880*x^237 + 880*x^236 + 880*x^235 + 910*x^234 + 910*x^233 + 910*x^232 + 910*x^231 + 910*x^230 + 935*x^229 + 935*x^228 + 935*x^227 + 935*x^226 + 935*x^225 + 955*x^224 + 955*x^223 + 955*x^222 + 955*x^221 + 955*x^220 + 970*x^219 + 970*x^218 + 970*x^217 + 970*x^216 + 970*x^215 + 980*x^214 + 980*x^213 + 980*x^212 + 980*x^211 + 980*x^210 + 985*x^209 + 985*x^208 + 985*x^207 + 985*x^206 + 985*x^205 + 985*x^204 + 985*x^203 + 985*x^202 + 985*x^201 + 985*x^200 + 980*x^199 + 980*x^198 + 980*x^197 + 980*x^196 + 980*x^195 + 970*x^194 + 970*x^193 + 970*x^192 + 970*x^191 + 970*x^190 + 955*x^189 + 955*x^188 + 955*x^187 + 955*x^186 + 955*x^185 + 935*x^184 + 935*x^183 + 935*x^182 + 935*x^181 + 935*x^180 + 910*x^179 + 910*x^178 + 910*x^177 + 910*x^176 + 910*x^175 + 880*x^174 + 880*x^173 + 880*x^172 + 880*x^171 + 880*x^170 + 845*x^169 + 845*x^168 + 845*x^167 + 845*x^166 + 845*x^165 + 805*x^164 + 805*x^163 + 805*x^162 + 805*x^161 + 805*x^160 + 766*x^159 + 766*x^158 + 766*x^157 + 766*x^156 + 766*x^155 + 722*x^154 + 722*x^153 + 722*x^152 + 722*x^151 + 722*x^150 + 679*x^149 + 679*x^148 + 679*x^147 + 679*x^146 + 679*x^145 + 631*x^144 + 631*x^143 + 631*x^142 + 631*x^141 + 631*x^140 + 584*x^139 + 584*x^138 + 584*x^137 + 584*x^136 + 584*x^135 + 538*x^134 + 538*x^133 + 538*x^132 + 538*x^131 + 538*x^130 + 493*x^129 + 493*x^128 + 493*x^127 + 493*x^126 + 493*x^125 + 449*x^124 + 449*x^123 + 449*x^122 + 449*x^121 + 449*x^120 + 406*x^119 + 406*x^118 + 406*x^117 + 406*x^116 + 406*x^115 + 364*x^114 + 364*x^113 + 364*x^112 + 364*x^111 + 364*x^110 + 325*x^109 + 325*x^108 + 325*x^107 + 325*x^106 + 325*x^105 + 287*x^104 + 287*x^103 + 287*x^102 + 287*x^101 + 287*x^100 + 252*x^99 + 252*x^98 + 252*x^97 + 252*x^96 + 252*x^95 + 218*x^94 + 218*x^93 + 218*x^92 + 218*x^91 + 218*x^90 + 187*x^89 + 187*x^88 + 187*x^87 + 187*x^86 + 187*x^85 + 159*x^84 + 159*x^83 + 159*x^82 + 159*x^81 + 159*x^80 + 134*x^79 + 134*x^78 + 134*x^77 + 134*x^76 + 134*x^75 + 112*x^74 + 112*x^73 + 112*x^72 + 112*x^71 + 112*x^70 + 93*x^69 + 93*x^68 + 93*x^67 + 93*x^66 + 93*x^65 + 77*x^64 + 77*x^63 + 77*x^62 + 77*x^61 + 77*x^60 + 62*x^59 + 62*x^58 + 62*x^57 + 62*x^56 + 62*x^55 + 50*x^54 + 50*x^53 + 50*x^52 + 50*x^51 + 50*x^50 + 39*x^49 + 39*x^48 + 39*x^47 + 39*x^46 + 39*x^45 + 31*x^44 + 31*x^43 + 31*x^42 + 31*x^41 + 31*x^40 + 24*x^39 + 24*x^38 + 24*x^37 + 24*x^36 + 24*x^35 + 18*x^34 + 18*x^33 + 18*x^32 + 18*x^31 + 18*x^30 + 13*x^29 + 13*x^28 + 13*x^27 + 13*x^26 + 13*x^25 + 9*x^24 + 9*x^23 + 9*x^22 + 9*x^21 + 9*x^20 + 6*x^19 + 6*x^18 + 6*x^17 + 6*x^16 + 6*x^15 + 4*x^14 + 4*x^13 + 4*x^12 + 4*x^11 + 4*x^10 + 2*x^9 + 2*x^8 + 2*x^7 + 2*x^6 + 2*x^5 + x^4 + x^3 + x^2 + x + 1
Das bedeutet dann beispielsweise



und 99 weitere solche Polynome fünften Grades für die verbleibenden Koeffizientenfälle für . Der Leitkoeffizient ist übrigens für alle Fälle derselbe, so dass man wg. auf lange Sicht sagen kann .
Dopap Auf diesen Beitrag antworten »

Danke für den Freude
Den Letzten gab es zur Aufgabe mit den 12 japanischen Sprührobotern.

---------------------------------------------------

Habe in der Zwischenzeit auch umständlich weitergerechnet und auch beim Polynom das CAS vom TR bemüht.
Ich denke das braucht jetzt hier nicht haarklein dargestellt zu werden, da du nicht nur Korrektur gelesen,
sondern das Ergebnis sauber lesbar formuliert hast.

Bei diesen Partitionen mit stand in Gedanken immer noch die ----> Geldwechselei Pate.
Und von den amerikanische Centmünzen gibt es eine weniger als im Euroland.

Was mit modulo 100 beschrieben wird, kann man auch so sehen, dass eine beliebige Zahl an $
( bei dir mit r bezeichnet ) gewechselt werden könnte.

Und zuletzt kommt noch die ketzerisch aufgeworfene Frage ins Spiel, ob der zeitliche Aufwand für diese Anzahlformel
(ist gültig für mehr als 3$)
nicht eventuell doch den PC mit dem superschnellen C++ zur Schnecke degradieren könnte?

Für einen Googol $ Schein oder erhalte ich
explizit und relativ schnell:

13333333333333333333333333333333333
33333333333333333333333333333333333
33333333333333333333333333333398333
33333333333333333333333333333333333
33333333333333333333333333333333333
33333333333333333333333344533333333
33333333333333333333333333333333333
33333333333333333333333333333333333
33333333333333333334138333333333333
33333333333333333333333333333333333
33333333333333333333333333333333333
33333333333333354500000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
000000000001

Am längsten dauert hier das Eintippen!

  • was sagt ein C++ Programm ohne Formel dazu ?
verwirrt Augenzwinkern
------------
Das Muster läßt sich bei großem r durch den dominierenden Summand von und den "kleineren" Summanden erklären.
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Dopap
Und zuletzt kommt noch die ketzerisch aufgeworfene Frage ins Spiel, ob der zeitliche Aufwand für diese Anzahlformel (ist gültig für mehr als 3$) nicht eventuell doch den PC mit dem superschnellen C++ zur Schnecke degradieren könnte?

Na für große bzw. auf jeden Fall. Der Rechenaufwand ist ja nur einmalig und hängt nur von der Münz-/Schein-Stückelung ab, aber nicht mehr von dem Geldwert, denn man damit darstellen will. (Im übrigen entbehren deine im hämischen Ton vorgetragenen Versuche, hocheffiziente Berechnungssoftware ins lächerliche zu ziehen, nur um deine lahme Möhre in besserem Licht erscheinen zu lassen, nicht einer gewissen Komik. Augenzwinkern )

D.h., wenn der Geldwert sehr viel größer als der größte Schein ist, dann ist dieses Verfahren hier klar besser. Bei kleinen Geldwerten (also so wie im anderen Thread, wo der Geldwert gleich dem größten Schein war) sieht es natürlich anders aus.

Genauere Messungen: Allein die Berechnung von für die 500€-Schein-Stückelung bis zum Cent hinab, d.h. für , hat hochoptimiert mit C++ geschlagene 195 Sekunden in Anspruch genommen. Die Polynomkoeffizientenberechnung mit diesem vorberechneten sowie auch vorberechneten Binomialkoeffizienten-Polynomen mit (<1ms) dauert für alle 100000 Polynome dann insgesamt nur noch 4.5 Sekunden. Alles wohlgemerkt in exakter Rechnung, also nicht irgendwelchen gerundeten 64Bit-Fließkommazahlen.

--------------------------------------------------------------------------------------------------------------

Nochmal zusammengefasst dargestellt: Wir haben Münz-/Schein-Werte , deren kgV sei . Sehr oft ist dieser kgV gleich dem größten der Einzelwerte, aber nicht immer - beispielsweise, wenn die Stückelung bei 20, 50 endet oder in deinem letzten Beispiel bei 10, 25. Übrigens dürfen auch mehrere der einander gleich sein, wie beispielsweise früher bei 5DM-Stück und -Schein, das Verfahren funktioniert auch dafür.

Ziel ist die Koeffizientenbestimmung der Reihe .

Dann ist mit Polynom

vom Grad .

Die Reihenentwicklung des Nenners ergibt schließlich



und damit per Koeffizientenvergleich

für und .

Beispielsweise auf die letzte Eskalationsstufe in Geldwechsler angewandt ist , es sind also 100000 Polynome vom Grad 14 zu bestimmen...
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »