Wissenschaft
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Der Lehrsatz des Pythagoras in der 3. Potenz

116 Beiträge ▪ Schlüsselwörter: Kubikzahlen ▪ Abonnieren: Feed E-Mail

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 13:12
@Tommy137
Stimmt, guter Punkt. Mit meiner Kontrolle schmeiss ich gültige Lösungen weg. Die Primfaktoren müssen einfach nur verschieden sein ...
Habe das Skript jetzt diesbezüglich mal noch angepasst:

// Unterhalb dieser Linie beginnt Skript
clear
function erg=gcd2(a,b)
r=modulo(a,b)
while(r>0) a=b;b=r;r=modulo(a,b);end
erg=b
endfunction
function quad()
A=1;
UPB=1000;
UPC=1000;
Third=1.0/3.0;
for B=A:UPB;
for C=A:UPC;
qval=A*A*A+B*B*B+C*C*C;
val=ceil(qval^(Third));
K=val;
val=K*K*K;
if (val==qval & C > B)
t1=gcd2(A,B);
t2=gcd2(A,C);
t3=gcd2(A,K);
t4=gcd2(t1,t2);
t5=gcd2(t1,t3);
if (t4==1 | t5==1)
printf("\n%d %d %d %.0f", A, B, C, K);
end
end
end
end
printf("\n");
endfunction
quad()
// Oberhalt dieser Linie endet Skript

Anzeige
melden
kore ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 13:15
UFF! ich versteh zwar wenig davon, aber meine allerhöchste Hochachtung an dieser Stelle...:)


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 13:27
@ emodul

Das ist eine Möglichkeit, allerdings sind da ein paar unnötige Berechnungen dabei.

Allgemein gilt:

gcd(a,b,c,d) = gcd(gcd(a,b),c,d) = gcd(gcd(gcd(a,b),c),d)

=>

t1=gcd2(A,B);
t2=gcd2(t1,C);
t3=gcd2(t2,K);
if (t3==1) ...

Das macht allerdings nicht allzu viel aus, da dieser Teil nur selten erreicht wird.

Auf jeden Fall solltest du die Abfrage (C>B) vorziehen, vor die Berchnung von K, da die power-Funktion sehr rechenintensiv ist und in dem fall ja überflüssig.

Starte also am besten C einfach erst bei B und nicht bei A.

=>

for B=A:UPB;
for C=B:UPC;


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 16:16
@Tommy137
Wiederum volle Zustimmung meinerseits, vor allem für den zweiten Punkt, C den aktuellen Wert von B als Startwert zuzuweisen. Das sollte doch etwas an Rechenzeit einsparen.

@Fuchs76
Falls Du bei Scilab oder dem Skript etwas Starthilfe benötigen solltest, kannst Du mir auch eine PN schicken.

Emodul


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 22:29
Anhang: gw48533,1231795778,Restliche_Quadrupel.xls


@emodul
@Tommy137

So, ich habe jetzt alle Zahlen, die ich gestern von Euch erhalten habe ins Excel übertragen, damit man auch problemlos mit den Daten arbeiten kann. Ich hänge die Datei als Beilage an. Ich werde diese später weiterbearbeiten, aber fürs Erste macht das Ganze schon ein bisschen mehr eine Gattung. Also, nochmals herzlichen Dank und liebe Grüsse.


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

12.01.2009 um 23:06
Anhang: gw48533,1231797987,Erste_Paarformeln.xls


@emodul
@Tommy137

Und hier noch die ersten Tabellenblätter, die als Grundlage für Paarformeln dienen können. Unter anderem diese "Tabellenstränge" kann man um eine weitere Achse erweitern...


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 17:10
Anhang: gw48533,1231863040,quadruples2.txt


Hier die Werte für D-C<=64 mit D<=10000.


Rechenzeit: knapp 112 Sekunden auf nem Athlon64 3200+


1x zitiertmelden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 18:17
Ich bin schwer beieindruckt...

Kann man noch als Bonus die Differenz C zu D = 1 mit einem höheren Parameter für D laufen lassen? So hoch, wie Du magst, aber gut wäre bis 125000, wenn Dein Rechner so schnell ist. Ich habe eben einen Ansatz gefunden, und weiss, dass die fehlenden Quadrupel bald folgen. Nachher gebe ich auch wieder ein bisschen Ruch, da ich die ganzen Daten wieder bearbeiten wil. Ein Haufen Zahlen alleine bringt auch nicht viel...

Liebe Grüsse

@Tommy137


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 19:06
Anhang: gw48533,1231870014,quadruples2.txt


Kein Problem, wollte mich eh anchher nochmal dransetzen und mit der Gleichung A³+B³+C³ = (C+1)³ rumspielen.

Hier erstmal die Werte bis 125000 (38 Sekunden).


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 19:13
Zitat von Tommy137Tommy137 schrieb:Rechenzeit: knapp 112 Sekunden auf nem Athlon64 3200+
Nicht schlecht. Du benutzt offenbar GNU GMP :D
Habe mir das hier eben auch kompiliert und in MINGW integriert und wundere mich etwas, dass ich das nicht schon früher getan habe ...

Emodul


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 21:32
Es gibt jetzt zwei Möglichkeiten. Entweder ich stelle noch mal einen Auszug meiner bisherigen Arbeit hier rein, oder aber, wenn ihr noch zwei, drei Tage Geduld habt, liefer ich eine Gesamtübersicht...

@emodul
@Tommy137


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 22:00
Lass dir ruhig Zeit.


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

13.01.2009 um 23:24
@Fuchs76
Ja, finde auch, es eilt ja nicht. Mach Dir da mal keinen Stress und stell das lieber sauber zusammen.

Emodul
PS: An die Zeiten von Tommy komme ich trotz dem Einsatz von GMP nicht ran, aber das Programm ist zumindest bedeutend schneller als das Skript und grosse Zahlen sind jetzt auch kein Problem mehr.


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 16:44
Anhang: gw48533,1231947887,Mappe_1b.xls


So, ich habe mal wieder eine Mappe fertig. Bis zur Gesamtübersicht dauert es noch ein wenig. In der Mappe sind Tabellen enthalten, die nicht nur aus primitiven Quadrupeln bestehen. Die Tabellen mit den Differenzen 14.21.28 und 35 sind haben pro sieben Quadrupel zwei multiolizierte. So bin ich durch Division auf Tabellen mit den Differnezen 2.3.4 und 5 gestossen, welche asonsten zu grosse Quadupel hätten, um sie aus einer Liste mit allen aufzufinden. Der Dateianhang dient dem Einblick, ich werde auf Einzelheiten darin erst später eingehen.


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:14
@emodul

Wie gross kann C maximal sein in Deinem Programm?


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:22
@Fuchs76
Eigentlich ist die grösse der Zahl nur durch den Speicher meines Computers begrenzt. Aber, und das ist eigentlich der entscheidende Punkt, wenn die Laufzeit des Programms im vernünftigen Rahmen bleiben soll, dann sollte sie nicht zu gross sein.

Bisher waren die grössten Zahlen für B und C 10000. Wenn Du allerdings einen relativ eng begrenzten Bereich hast, dann können die Zahlen recht gross sein.

Sonst kann ich einfach mal einen Testlauf machen. Welche Zahlen, bzw. in welchem Bereich soll ich suchen?

Bei D=C+Konstante ist mein Proggie übrigens recht langsam ...

Emodul


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:36
Zitat: "Bei D=C+Konstante ist mein Proggie übrigens recht langsam ..."

Also kannst Du bereits nach Differenzen suchen?

Liebe Grüsse


1x zitiertmelden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:42
Zitat von Fuchs76Fuchs76 schrieb:Also kannst Du bereits nach Differenzen suchen?
Ja, allerdings ist mein Programm in dem Bereich doch um einiges langsamer als das von Tommy. Mein Atari hier hat über all die Jahrzehnte immer zuverlässig funktioniert, aber jetzt enttäuscht er mich doch etwas ...

Ok, ich mache dann mal einen Testlauf hier mit A=1 und B und C bis 100000.

Emodul


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:55
Kein Problem, wollte mich eh anchher nochmal dransetzen und mit der Gleichung A³+B³+C³ = (C+1)³ rumspielen.


Wow, da hat die Analyse wirklich was gebracht.

Die Werte für D-C=1 und D<=125000 bekomm ich jetzt in einer weniger als 0,4 Sekunden :D


melden

Der Lehrsatz des Pythagoras in der 3. Potenz

14.01.2009 um 17:56
Es wird allerdings nciht so leicht, dies für beliebige Differenzen zu erweitern. da muss ich mich später nochmal mit beschäftigen.


Anzeige

melden