Themenbereiche Themenbereiche Profile Hilfe/Anleitungen Help    
Recent Posts Last 1|3|7 Days Suche Suche Tree Tree View  

Gaus'sche Wochentagsformel

ZahlReich - Mathematik Hausaufgabenhilfe » Denksport » Sonstiges » Gaus'sche Wochentagsformel « Zurück Vor »

Das Archiv für dieses Kapitel findest Du hier.

Autor Beitrag
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Kr3mel (Kr3mel)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Neues Mitglied
Benutzername: Kr3mel

Nummer des Beitrags: 1
Registriert: 05-2004
Veröffentlicht am Mittwoch, den 12. Mai, 2004 - 20:18:   Beitrag drucken

Hallo!
Ich hab hier eine ziemlich knifflige Frage (oder auch nicht) zu Gauss' Wochentagsformel

W = (d + (2,6 - m x 0,2)+ y/4 + c/4 - 2xc) : 7

d = Wochentag (von 1 - 30)
m = Geburtsmonat
y = die aus den letzten beiden Ziffern gebildete Zahl des Geburtsjahres (z.B 1987 --> 87)
c = die aus den ersten beiden Ziffern gebildete Zahl (z.b 19 bei 1987)

Wie kam Gauss auf diese Zahlen? Wie kann ich seine Denkweise nachvollziehen? Oder ist er einfach nur ein Genie und ich muss das akzeptieren? Warum verwendet er beispielsweise 2xc?

Und warum erhalte ich mit der Jahreszahl 2000 beispielsweise kein Ergebnis?

Ich hoffe mir kann hier jemand eine Antwort auf meine Frage geben!
Danke schon einmal!}
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Murray (Murray)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Murray

Nummer des Beitrags: 237
Registriert: 10-2001
Veröffentlicht am Mittwoch, den 12. Mai, 2004 - 21:11:   Beitrag drucken

Hallo Kr3mel,

also erstmal muß ich Deine Formel korrigieren.

W = (d + [2.6m - 0.2] + [y/4] + [c/4] - 2c) mod 7

und wenn W < 0, dann W = W + 7
(da streikt nämlich bei vielen Computern das Modulo)

[] - meint den ganzzahligen Anteil (Bsp. [2.4] = 2)
mod - meint den Rest der Disvision (Bsp. 12 mod 7 = 5, weil 1*7 + 5 = 12)

Onkel Murray


Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 986
Registriert: 02-2001
Veröffentlicht am Mittwoch, den 12. Mai, 2004 - 21:16:   Beitrag drucken

Hi!

Erstmal wollen wir mal deine Formel (und die von Murray) korrigieren:

Wir brauchen hier u.a. die Gaussklammer [.], um ganze Zahlen als Ergebnis zu bekommen.

Dann lautet die Formel mit deinen Bezeichnungen:
w = (d + [2,6m - 0,2] + y + [y/4] + [c/4] - 2c) mod 7

Bevor wir jedoch losrechnen, müssen wir noch eine Besonderheit dieser Formel berücksichtigen:
Wir müssen aus unserem Datum ein neues bilden, indem wir es um zwei Monate zurückverschieben.
Am Beispiel:
Wollen wir den Wochentag des 5.1.2004 berechnen, setzen wir in obige Formel den 5.11.2003 ein.
Natürlich könnte man das in der Formel berücksichtigen, aber so bleibt die Formel übersichtlicher.


Nun zu deinem y2k-Problem:
Nehmen wir doch den 20.4.2000:
Wir bilden das "neue" Datum: 20.2.2000.
Nun setzen wir ein:
(d + [2,6m - 0,2] + y + [y/4] + [c/4] - 2c) = (20 + [2,6*2 - 0,2] + 0 + [0/4] + [20/4] - 2*20) = (20 + 5 + 0 + 0 + 5 - 40) = -10

Nun könnte dieses negative Erlebnis dein Problem gewesen sein. Da wir aber die modulo-Operation benutzen, können wir das Problem folgendermaßen beseitigen:
Wir addieren so oft 7 dazu, bis wir ein positives Ergebnis erhalten:
-10 + 7 = -3 reicht nicht, also nochmal:
-10 + 7 + 7 = 4

Also gilt:
(-10) mod 7 = 4 mod 7 = 4, also war es ein Donnerstag! Das ist sogar richtig.



MfG
Martin
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.

Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 987
Registriert: 02-2001
Veröffentlicht am Mittwoch, den 12. Mai, 2004 - 22:26:   Beitrag drucken

Jetzt zu deiner eigentlichen Frage:

Wir wollen mal die Herkunft/Bedeutung der einzelnen Summanden klären:

Dass das d einmal vorkommen muss, ist klar, denn am nächsten Tag im Monat haben wir auch den nächsten Wochentag.

Der Ausdruck [2,6m - 0,2] hilft uns, die Sprünge in den Tageszahlen auszugleichen. Da schaut man sich am besten die folgende Tabelle an:

m123456789101112
f(m)=[2.6m-0.2] mod 7250351462403


Die Differenz zweier Funktionswerte entspricht der Differenz der Wochentage der 1. Tage der jeweiligen Monate. Oder klarer als Beispiel:
Der 1.5. sei ein Montag, dann ist der 1.6. ein (Montag+3) = Donnerstag, da für die Differenz gilt: 3 (Juni) - 0 (Mai) = 3.


Das y besagt einfach nur, dass jedes (normale) Jahr einen Wochentag später beginnt als das vorhergehende:
Während 1997 mit einem Mittwoch anfing, fing 1998 mit einem Donnerstag an.
Das liegt daran, dass ein Jahr 365 Tage hat, also: 365 mod 7 = 1. Jedes Jahr einen Wochentag dazu!


Das [y/4] bedeutet, dass jedes 4. Jahr ein Schaltjahr ist.


Das -2c wird wahrscheinlich (ich habe es nicht nachgerechnet) dafür gut sein, dass die durch 100 teilbaren Jahre keine Schaltjahre sind.


Und schließlich sort das [c/4] dafür, dass die durch 400 teilbaren Jahre doch wieder als Schaltjahre berücksichtigt werden.


Das war vielleicht nicht alles ausführlich erklärt, aber vielleicht hilft es ja als Denkanstoß...


MfG
Martin
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.

Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Alexrussak (Alexrussak)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Neues Mitglied
Benutzername: Alexrussak

Nummer des Beitrags: 1
Registriert: 05-2013
Veröffentlicht am Mittwoch, den 29. Mai, 2013 - 11:01:   Beitrag drucken

Ich hab da mal ne frage : Kennt sich einer von euch mit DACIMAL BASIC aus ? - Ich muss ein Gebutstagsprogramm schreiben , dass wenn man sein Geburtsdatum eingibt den passen Wochentag angibt.Soweit bin ich momentan :
PRINT "gebe hier bitte den Tag ein."
INPUT d
PRINT "gebe hier bitte den Monat ein."
INPUT m
PRINT "gebe hier das Jahr ein."
INPUT y

REM man soll sein geburtsdatum angeben
PRINT "Du hast also am *";d;m;y; "* Geburtstag"
REM gibt das Datum wieder

PRINT "Es ist ein "
LET z1 = INT (2.6*m-0.2)
LET z2 = y+ INT (y/4)+ INT (c/4)
LET z3 = d+(-2*c)

Beitrag verfassen
Das Senden ist in diesem Themengebiet nicht unterstützt. Kontaktieren Sie den Diskussions-Moderator für weitere Informationen.

ad

Administration Administration Abmelden Abmelden   Previous Page Previous Page Next Page Next Page