Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Summe von 3 Quadraten Maple

Summe von 3 Quadraten Maple

Universität / Fachhochschule

Sonstiges

Tags: Gauß - 3 Variablen, Maple, Quadratzahl, Sonstiges, Zahlentheorie

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
lila13

lila13 aktiv_icon

12:05 Uhr, 17.06.2014

Antworten
Hallo, ich habe Probleme bei folgender Aufgabe:

Schreiben Sie eine Prozedur, die die Teilmenge der Zahlen von 1 bis 100 ausgibt,
die sich nicht als Summe von drei Quadraten darstellen lassen. Beachten Sie, dass die
alleinige Verwendung der Aussage

"Sei n aus den natürlichen Zahlen. Wenn n kongruent 7(mod8) gilt, dann ist n nicht Summe von drei Quadraten."

nicht zu einer vollständigen Lösung
führt.
(Hinweis: Möglicherweise kann Ihnen der Befehl minus nützlich sein.)


Meine Ansätze:

1. Ansatz:

DreiQuadrate:=proc() #gibt die Teilmenge der Zahlen von 1 bis 100 aus, die sich nicht als Summe von drei Quadraten darstellen lassen
local i,m,M,N,k,P,p;
P:={}; #P ist die Menge der Quadratzahlen zwischen 1 und 100
N:={}; #N ist die Teilmenge der Zahlen von 1 bis 100, die sich als Summe von drei Quadraten darstellen lassen
M:={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,62,63,64,
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
86,87,88,89,90,91,92,93,94,95,96,97,98,99,100};

for i from 1 to 100 do
p:=i2;
P:=P union {p};
M:=M minus P;

if (imod4<>0) and (imod8<>7) then

N:=N union {i};
M:=M minus N;
fi;
od;

print(M);

end:
DreiQuadrate();
{7,8,12,15,20,23,24,28,31,32,39,40,44,47,48,52,

55,56,60,63,68,71,72,76,79,80,84,87,88,92,95,96}

Hier gibt mir Maple auch Zahlen aus (die Ausgabe ist das, was nach dem "end:" steht), welche sich durchaus als Summe von drei Quadraten darstellen lassen, wie beispielsweise
8=22+22+0=4+4+0
20=42+22+02=16+4+0
24=42+22+22
32=42+42+02
40=62+22+02
44=62++22+22
... etc.


2. Ansatz:

DreiQuadrate:=proc() #gibt die Teilmenge der Zahlen von 1 bis 100 aus, die sich nicht als Summe von drei Quadraten darstellen lassen
local i,m,M,N,n,k;
N:={}; #N ist die Menge der Zahlen von 1 bis 100, die sich als Summe von drei Quadraten darstellen lassen
M:={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,62,63,64,
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
86,87,88,89,90,91,92,93,94,95,96,97,98,99,100};

for i from 1 to 100 do
for k from 0 to 100 do
if (imod4<>0) and (imod8<>7) then
n:=(4k)i;
N:=N union {n};
M:=M minus N;
fi;
od;
od;

print(M);

end:
DreiQuadrate();
{7,15,23,28,31,39,47,55,60,63,71,79,87,92,95}

Hier wiederum fehlen Zahlen, welche sich nicht als Summe dreier Quadratzahlen darstellen lassen, wie beispielsweise die 12.


Kann mir jemand von euch einen Tipp geben, wie ich meine Fehler beheben könnte?? Bin für jede Hilfe dankbar!!

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich bräuchte bitte einen kompletten Lösungsweg." (setzt voraus, dass der Fragesteller alle seine Lösungsversuche zur Frage hinzufügt und sich aktiv an der Problemlösung beteiligt.)
Online-Nachhilfe in Mathematik
Antwort
anonymous

anonymous

12:53 Uhr, 17.06.2014

Antworten
Hallo
Ich habe mir ehrlich gesagt die Algorithmen nicht genau angeschaut und eingedacht.

Damit es aber nicht an einem Leichtsinnsfehler scheitert, und du am Ende den zweiten Algorithmus zu Unrecht verurteilst:
du sagst "Wiederum fehlen Zahlen, welche sich nicht als Summe dreier Quadratzahlen darstellen lassen, wie beispielsweise die 12."
Die 12 lässt sich aber als Summe dreier Quadratzahlen darstellen:
12=22+22+22

lila13

lila13 aktiv_icon

13:45 Uhr, 17.06.2014

Antworten
Hallo cositan!

Vielen, vielen Dank für diesen Hinweis!! Ich muss wohl ein totales Blackout gehabt haben, weil mir das nicht eingefallen ist!! Vielen, vielen Dank!!
Frage beantwortet
lila13

lila13 aktiv_icon

14:04 Uhr, 17.06.2014

Antworten
Danke!!