Częstość piątku trzynastego.

Czy naprawdę piątek przypada trzynastego dnia miesiąca częściej, niż inne dni tygodnia, jak wynika z tego wpisu? Postanowiłem to sprawdzić, metodą najdoskonalszą, czyli brute force. Co prawda tylko dla lat 1970-2037 czyli w Unix Epoch (pełne lata).

Kod był praktycznie gotowy z czasów obliczeń, czy pracownicy zyskają, czy stracą na wolnym 6. stycznia. Ostatecznie wygląda on tak:

a wynik działania wygląda tak:

DOW - ilosc
1 - 116
2 - 118
3 - 115
4 - 117
5 - 117
6 - 116
7 - 117
Suma: 816

1 - Monday, ... , 7 - Sunday

Piątek oznaczony jest cyfrą 5, jak widać występuje on jako trzynasty dzień miesiąca 117 razy, podobnie jak czwartek i niedziela , więcej w badanym okresie jest wtorków trzynastego (118), a najmniej śród (113).

Pozostaje pytanie, dla jakich dokładnie lat prowadzona była analiza w oryginalnym wpisie. Na oko wygląda na jakieś 335 lat, pytanie które dokładnie. W każdym razie w badanym okresie nic nie wskazuje na większą częstotliwość występowania piątku w trzynasty dzień miesiąca.

5 odpowiedzi do “Częstość piątku trzynastego.”

  1. Z niedzielnym pozdrowieniem i wyjaśnieniem: jednak ograniczenie się do 68 lat nie było dobrym pomysłem 🙂 Jak wyjaśniam w komentarzu u mnie, dając linkę do tego wyjaśnienia, właściwym, bo pełnym okresem (biorącym pod uwagę wszystkie zawichrowania kalendarza i lat przestępnych, oraz oznaczonych przez liczbę podzielną przez 4 ale pozbawionych przestępności) jest cykl z 400 lat mający jak raz wielokrotność 7 dni.

    I oczywiście gdyby jeden jedyny raz uszczknąć tam jakiś dzień, to cały rozkład częstotliwości by się cyklicznie przesunął…

  2. 68 było najprostsze w implementacji – gotowiec pod ręką – i dotyczy czasów w których żyjemy (no, mniej więcej). Faktycznie nie zaważyłem, że okres 400 lat, z uwzględnieniem lat przestępnych dzieli się przez 7 bez reszty.
    No i nieszczęśliwie się złożyło, że 15 października 1582 wypadł w piątek. Pociesza to, że za około 3000 lat pewnie znowu będzie trzeba zrobić korektę o 1 dzień. 😉

  3. Bardzo nieładny kod. Do wszelkich kalkulacji związanych z kalendarzem polecam moduł Date::Calc. Z jego pomocą można wykonać te obliczenia tak:

    #!/usr/bin/perl
    use warnings;
    use strict;
    use Date::Calc qw(Day_of_Week Day_of_Week_to_Text);
    my %dow_frequency;for my $year (1701..2100) {
    for my $month (1..12) {
    $dow_frequency{Day_of_Week($year,$month,13)}++;
    }
    }
    for my $dow (1..7) {
    printf „%10s %d\n”, Day_of_Week_to_Text($dow), $dow_frequency{$dow};
    }

    otrzymując wynik:
    Monday 685
    Tuesday 685
    Wednesday 687
    Thursday 684
    Friday 688
    Saturday 684
    Sunday 687
    potwierdzający hipotezę (arbitralnie przyjąłem okres 1701-2100, ale okres 1801-2200 daje identyczne rezultaty).

  4. @szymonsokol: Ciesz się, że ostrych nawiasów nie używałeś (też wycina)… Ogólnie Blox się zupełnie do wklejania kodu nie nadaje, także we wpisach, także w tekście oznaczonym jako preformatowany. Obejście do wpisów (całkiem fajnie działające IMHO) w postaci zewnętrznego serwisu powyżej, do komentarzy niestety się nie nadaje.

    Za namiar na moduł dzięki, poczytam co to umie. Najgorzej jest klepnąć coś na kolanie (bash popychany perlem) i mieć potem pod ręką…

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *