Kalender Gregorian berpihak pada lima dari tujuh hari kerja selama tahun kabisat. Karena itu peluangnya tidak tepat .2/7
Ini pada dasarnya masalah B3 dalam Kompetisi Matematika Putnam 1950 :
n dipilih secara acak dari bilangan asli. Tunjukkan bahwa probabilitas bahwa 25 Desember pada tahun adalah hari Rabu bukanlah 1/7.n
Dalam Kalender Gregorian , tahun yang merupakan kelipatan dari adalah tahun kabisat (dengan hari), tetapi tahun yang merupakan kelipatan bukan tahun kabisat (dan karenanya memiliki hari), dengan pengecualian bahwa tahun yang merupakan kelipatan adalah tahun kabisat. (Banyak dari kita ingat pengecualian terbaru pada tahun ). Ini menciptakan siklus tahun yang mengandung tahun kabisat.47×52+2=3661007×52+1=3654002000400400/4−400/100+400/400=97
Yang sangat menarik adalah bahwa jumlah total hari dalam siklus ini adalah kelipatan tujuh:
400×(7×52+1)+97×1≡400+97≡71×7≡0mod7.
Ini menunjukkan bahwa siklus tahun terdiri dari seluruh minggu. Akibatnya, pola hari dalam seminggu persis sama dari satu siklus ke siklus berikutnya.400
Karena itu kami dapat menginterpretasikan pertanyaan sebagai menanyakan peluang hari Minggu ketika mengambil sampel secara acak dan seragam dari setiap tahun siklus tahun kabisat. Perhitungan brute-force (menggunakan, katakanlah, fakta bahwa 1 Januari 2001, adalah hari Senin) menunjukkan bahwa dari tahun kabisat dalam setiap siklus memiliki hari Minggu. Karena itu kesempatannya adalah53400289753
Pr(53 Sundays)=2897.
Perhatikan bahwa ini tidak sama dengan : itu sedikit lebih besar. Secara kebetulan, ada peluang yang sama yaitu Rabu, Jumat, Sabtu, atau Senin dan hanya peluang dari Selasa atau Kamis.28/98=2/75327/9753
Bagi mereka yang ingin membuat perhitungan lebih rinci (dan mungkin tidak mempercayai penyederhanaan matematis), berikut ini adalah kode brute force yang menghitung dan memeriksa setiap hari dalam seminggu selama beberapa tahun tertentu. Pada akhirnya ini menampilkan jumlah tahun dengan penampilan setiap hari dalam seminggu. Itu ditulis dalam . 53R
Berikut ini adalah output untuk siklus :2001−2400
Friday Monday Saturday Sunday Thursday Tuesday Wednesday
28 28 28 28 27 27 28
Ini kodenya sendiri.
leapyear <- function(y) {
(y %% 4 == 0 & !(y%% 100 == 0)) | (y %% 400 == 0)
}
leapyears <- seq(2001, length.out=400)
leapyears <- leapyears[leapyear(leapyears)]
results <- sapply(leapyears, function(y) {
table(weekdays(seq.Date(as.Date(paste0(y, "-01-01")), by="1 day", length.out=366)))
})
rowSums(results==53)