DAS Forum für Enthusiasten

normal Mathe Frage! (Für mich eher ein Rätsel)

  • FabsOtX
  • FabsOtXs Avatar Autor
  • Offline
  • Forum Meister
  • Forum Meister
  • i.A. aHaBotX a.D.     CC BY-NC 4.0
  • Beiträge: 462
  • Thanks: 10

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her
#4821
@Fabs:

Es hat mich jetzt doch noch interessiert, wie man es besser machen kann.
 

Danke dafür. es läuft auch auf jeden fall schneller.

Da ich ja in meiner alten tabelle 1 -100 einen fehler hatte sind diese zahlen jetzt auch neu für mich. Bist 15 passt jetzt aber auf jeden fall alles zusammen auch mit den Kombi. arrays.

Sehr cool.

Es beruht aber auf dem selben Prinzip von leider viel zu vielen aufrufen. also 1000, 10000 ...... würde ich gerne mal eingeben und sehen was dabei raus kommt aber mit meiner alten Kiste wird das garantiert nichts. eine Mathe Funktion wäre da wohl um einiges schneller.
NULLIUS IN VERBA

"Zu nah an der Wahrheit
Zu nah am Leben
Zu penetrant um
Ignoriert zu werden" Böhse Onkelz 1996

"Gedankenexperimente beginnen bei mir grundsätzlich im leeren Raum." Ich! Hier, am 18.05.2024 ;)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FabsOtX
  • FabsOtXs Avatar Autor
  • Offline
  • Forum Meister
  • Forum Meister
  • i.A. aHaBotX a.D.     CC BY-NC 4.0
  • Beiträge: 462
  • Thanks: 10

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4822
Steini hat meinem Alten VW Käfer mal gezeigt was Lichtgeschwindigkeit bedeuted das hat mich grade vom hocker gehauen.

Jetzt dacht ich mir frag doch mal ChatGPT danach und es fäng an zu erzählen von "Memoization" und ich Denke nur "WASSS??"

Dann sagt es das dadurch die Geschwindigkeit noch gesteigert werden kann. OK!

Warp:

Code:
function countPartitions(n, minSummand, maxSummand, memo = {}) { // Basisfall if (n === 0) { return 1; } // Abbruchbedingung if (n < 0 || maxSummand < minSummand) { return 0; } // Schlüssel für die Memoization const key = `${n}-${minSummand}-${maxSummand}`; if (memo[key] !== undefined) { return memo[key]; } // Möglichkeit 1: maxSummand verwenden const withMax = countPartitions(n - maxSummand, minSummand, maxSummand, memo); // Möglichkeit 2: maxSummand nicht verwenden const withoutMax = countPartitions(n, minSummand, maxSummand - 1, memo); // Ergebnis speichern und zurückgeben memo[key] = withMax + withoutMax; return memo[key]; } function countPartitionsForN(n) { return countPartitions(n, 2, n - 1); } // Test mit n = 101 const i = 10; const result = countPartitionsForN(i); console.log(i, result);




1000      9.33624404877721e+29   
 
NULLIUS IN VERBA

"Zu nah an der Wahrheit
Zu nah am Leben
Zu penetrant um
Ignoriert zu werden" Böhse Onkelz 1996

"Gedankenexperimente beginnen bei mir grundsätzlich im leeren Raum." Ich! Hier, am 18.05.2024 ;)
Letzte Änderung: 1 Monat 2 Wochen her von FabsOtX.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FabsOtX
  • FabsOtXs Avatar Autor
  • Offline
  • Forum Meister
  • Forum Meister
  • i.A. aHaBotX a.D.     CC BY-NC 4.0
  • Beiträge: 462
  • Thanks: 10

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4825
Jetzt wird es Spuki...


Code:
function countPartitions(n) { const dp = Array(n + 1).fill(0); dp[0] = 1; for (let summand = 2; summand < n; summand++) { for (let j = summand; j <= n; j++) { dp[j] += dp[j - summand]; } } return dp[n]; } const result = countPartitions(101); console.log(101, result);

EDIT:
10000 4.573494459315549e+104

und die lade zeiten sind garnicht beachtenswert Hammer!
EDIT ENDE


Anscheint hat ChatGPT durch Steinis Lösung zum Ersten mal wirklich begriffen was ich von ihm will!

Ich verstehe ehrlich gesagt nur "Bahnhof"
 

Ja, genau! Es gibt in der Zahlentheorie tatsächlich mathematische Ansätze, um das Problem der Partitionsanzahl zu lösen, insbesondere wenn wir uns die Anzahl der Möglichkeiten ansehen, eine Zahl in Summen von kleineren Zahlen zu zerlegen.
1. Partitionsfunktion p(n)p(n)

Die Partitionsfunktion p(n)p(n) gibt die Anzahl der Möglichkeiten an, die Zahl nn als Summe von positiven ganzen Zahlen zu schreiben, ohne Berücksichtigung der Reihenfolge der Summanden. Für dein spezifisches Problem mit eingeschränkten Summanden gibt es jedoch keine einfache geschlossene Formel, aber:
2. Formel für eingeschränkte Summanden

Wenn du eine Zahl nn mit Summanden zwischen einem minimalen und maximalen Wert zerlegen möchtest, kann die mathematische Betrachtung durch das Problem der sogenannten „eingeschränkten Partitionszahlen“ behandelt werden.
3. Das Euler'sche Partitionstheorem

Das Euler'sche Partitionstheorem beschreibt die Anzahl der Partitionsmöglichkeiten einer Zahl mit zusätzlichen Bedingungen. Diese sind jedoch recht spezifisch und erfordern spezielle Fälle, die manchmal durch generating functions (Erzeugende Funktionen) gelöst werden können.
Generating Functions

Eine mächtige Methode zur Berechnung von Partitionen ist die Verwendung von generating functions. Eine generating function ist eine formale Potenzreihe, bei der die Koeffizienten der Potenzen von xx die Anzahl der Partitionsmöglichkeiten angeben.

Für die Partitionsfunktion p(n)p(n) gibt es folgende generating function:
P(x)=∏k=1∞ 1/1−xk 
Dies beschreibt alle Partitionen einer Zahl nn.
Für eingeschränkte Summanden:

Wenn du jedoch nur bestimmte Summanden (z.B. zwischen 2 und n−1n−1) zulassen willst, modifiziert sich die generating function entsprechend:
P(x)=∏k=2n−1 1/1−xk
4. Rekursive Formeln

Es gibt auch rekursive Formeln zur Berechnung der Anzahl der Partitionen mit Einschränkungen. Für eingeschränkte Summanden (z.B. k≥2k≥2) gibt es angepasste Rekursionsformeln.
5. Spezielle Fälle

In manchen Fällen lässt sich die Anzahl der Partitionen durch direkte kombinatorische Überlegungen berechnen. Wenn zum Beispiel nur Summanden von geraden Zahlen oder ungeraden Zahlen erlaubt sind, gibt es spezielle Theoreme und Formeln.
Zusammenfassung:

Für die allgemeine Berechnung der Partitionszahlen kannst du Euler's Partitionsformel oder generating functions verwenden. Für die spezifische Fragestellung mit eingeschränkten Summanden gibt es keine einfache geschlossene Formel, aber die Rekursion, die wir zuvor implementiert haben, ist eine numerische Methode, die das Problem löst. Generating functions sind mächtige Werkzeuge, die für das allgemeine Problem von Partitionen verwendet werden können und tief in der Kombinatorik und Zahlentheorie verankert sind.

 
NULLIUS IN VERBA

"Zu nah an der Wahrheit
Zu nah am Leben
Zu penetrant um
Ignoriert zu werden" Böhse Onkelz 1996

"Gedankenexperimente beginnen bei mir grundsätzlich im leeren Raum." Ich! Hier, am 18.05.2024 ;)
Letzte Änderung: 1 Monat 2 Wochen her von FabsOtX.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4826
10000 4.573494459315549e+104
hab ich auch raus
hättest ja gleich sagen können, dass das nur ne Addition ist.
dp enthält übrigens nicht die richtigen Zahlen, nur die letzte dp[n] ist richtig.
 
Letzte Änderung: 1 Monat 2 Wochen her von Rainer Raisch.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FabsOtX
  • FabsOtXs Avatar Autor
  • Offline
  • Forum Meister
  • Forum Meister
  • i.A. aHaBotX a.D.     CC BY-NC 4.0
  • Beiträge: 462
  • Thanks: 10

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4827
10000 4.573494459315549e+104
hab ich auch raus
hättest ja gleich sagen können, dass das nur ne Addition ist.
dp enthält übrigens nicht die richtigen Zahlen, nur die letzte dp[n] ist richtig.

Bei deiner Liste die du grade noch hier hattest Fehlte überall noch ein -1 außer bei der ersten, der 0.
NULLIUS IN VERBA

"Zu nah an der Wahrheit
Zu nah am Leben
Zu penetrant um
Ignoriert zu werden" Böhse Onkelz 1996

"Gedankenexperimente beginnen bei mir grundsätzlich im leeren Raum." Ich! Hier, am 18.05.2024 ;)
Letzte Änderung: 1 Monat 2 Wochen her von FabsOtX.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4828
Bei deiner Liste die du grade noch hier hattest Fehlte überall noch ein -1 außer bei der ersten, der 0.
Das war der Anfang des vollständigen dp, und dort ist eben nur die letzte Zahl dp[n] korrekt. Der ganze Rest sind nur Hilfszahlen dafür.
Letzte Änderung: 1 Monat 2 Wochen her von Rainer Raisch.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her
#4833
Anscheint hat ChatGPT durch Steinis Lösung zum Ersten mal wirklich begriffen was ich von ihm will!
Der Bot ist nicht intelligent. Man muss die Fragen schon sehr genau überlegen und auf den Punkt genau formulieren, sonst kapiert er's nicht und assoziiert sich irgendwas zusammen. Legasthenie ist leider auch hinderlich beim Fragen.

Eigentlich ist es auch eine gute Übung für die Kommunikation mit Menschen. Gedanken lesen kann niemand. Wenn man sich schlampig und unpräzise ausdrückt, dann wird man halt nicht verstanden oder missverstanden. Wenn ich A sage, aber B meine, dann wird's schwierig. Beim Chatbot wird das besonders deutlich. Menschen können sich bis zu einem gewissen Grad noch "zusammenreimen" was da wohl gemeint ist, wenn sich jemand unpräzise ausdrückt. Der Bot kann das nicht. Dazu müsste er wirklich intelligent sein und nicht nur so tun können als ob.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4834
Der Bot kann das nicht.
Nur eine Frage der Programmierung, und ich meine schon, dass er auch weiterführende Antworten gibt.
Ich habe zwar eher TruthGPT ausprobiert, und wenn man den nach Weißen Zwergen fragt, antwortet er immer mit rosa Einhörnern, selbst wenn er im ersten Teil der Antwort physikalische Daten wiedergibt, die sich auf die Frage beziehen.
Letzte Änderung: 1 Monat 2 Wochen her von Rainer Raisch.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her - 1 Monat 2 Wochen her
#4838
Der Bot kann das nicht.
Nur eine Frage der Programmierung, und ich meine schon, dass er auch weiterführende Antworten gibt.
Klar, weiterführend mit seinen Assoziationen. Es ist dann aber eher Zufall, wenn er damit auch das trifft, worauf man mit der Frage hinaus will, wenn sie nicht ganz eindeutig formuliert ist. Sich klar auszudrücken ist gar nicht so einfach wie man vllt. meint, und selbst wenn es gelingt ist es für ein menschl. Gegenüber auch nicht immer einfach zu verstehen. Man sieht es ja zur Genüge hier im Forum, wie da oft aneinander vorbei geredet wird. Manchmal habe ich den Eindruck, dass je klarer und deutlicher man formuliert, umso weniger wird man verstanden^^.

Z.B. hatte ich oben geschrieben, dass der Test auf gerade oder ungerade Zahlen mit einer UND-Verknüpfung im Binärsystem schneller ist als mit Modulo 2. Darauf deine Antwort, dass die Geschwindigkeit vom Interpreter abhängt (Anzahl zu lesender Zeichen) und Math.bla-Funktionen je nach Implementierung auch verschieden schnell sein können. Naja, das stimmt zwar, taugt aber als Relativierung meiner Aussage überhaupt nicht, denn ich sprach *ausschließlich* vom Testen auf gerade oder ungerade Zahlen mit einer möglichst einfachen Operation. Dass sich meiner Aussage nur darauf bezieht, ist dir anscheinend entgangen^^, obwohl es m.E. deutlich dasteht.
 
Letzte Änderung: 1 Monat 2 Wochen her von Steinzeit-Astronom.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Re: Mathe Frage! (Für mich eher ein Rätsel)

1 Monat 2 Wochen her
#4840
taugt aber als Relativierung meiner Aussage
doch durchaus, abgesehen davon, dass Deine Formulierung wohl auch die mit den wenigsten Zeichen war.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.