019 – Sonntage am 1. des Monats

 

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