Wie viele Sonntage sind im letzten Jahrhundert (1.1.1901 – 31.12.2000) auf den ersten Tag eines Monats gefallen?
Lösung
Möglichkeit 1
Wir wissen:
Der 1.1.1901 war ein Dienstag.
Die Monate eines Jahres haben [31 (x) 31 30 31 30 31 31 30 31 30 31] Tage.
(x) ist 28, oder bei einem Schaltjahr 29.
Jedes Jahr, das durch 4 teilbar ist, ist ein Schaltjahr, außer den Jahren die durch 100 teilbar sind, es sei denn sie sind auch durch 400 teilbar.
Matlab-Code:
tag = 2; % Dienstag
monatTage0 = [31 28 31 30 31 30 31 31 30 31 30 31];
monatTage1 = [31 29 31 30 31 30 31 31 30 31 30 31];
schaltJahr = zeros(100, 1);
treffer = 0;
for jahr = 4 : 4 : 100
schaltJahr(jahr) = 1;
end
for jahr = 1 : 100
if schaltJahr(jahr) == 0
for monat = 1 : 12
if mod(tag, 7) == 0
treffer = treffer + 1;
end
tag = mod(tag + monatTage0(monat), 7);
end
else
for monat = 1 : 12
if mod(tag, 7) == 0
treffer = treffer + 1;
end
tag = mod(tag + monatTage0(monat), 7);
end
end
end
treffer
Ergebnis: 171
Rechenzeit: 0.000573 Sekunden
Möglichkeit 2
Wir haben 100 Jahre zu je 12 Monaten, also 1200 Monate. Es gibt 7 Wochentage. Es fängt zwar nicht jeder siebte Monat mit einem Montag an, bei 100 Jahren stimmt diese Aussage aber statistisch in etwa.
1200 / 7 = 171.43
Abgerundet: 171


