O calendário gregoriano favorece cinco dos sete dias da semana durante os anos bissextos. Portanto, a chance não é precisamente .2/7
Este foi essencialmente o problema B3 no Concurso de Matemática Putnam de 1950 :
n é escolhido aleatoriamente entre os números naturais. Mostre que a probabilidade de 25 de dezembro no ano ser quarta-feira não é 1/7.n
No calendário gregoriano , anos com múltiplos de são anos bissextos (com dias), mas anos com múltiplos de não são anos bissextos (e, portanto, têm dias), com exceção dos anos múltiplos de anos bissextos. (Muitos de nós lembramos da exceção mais recente em ) Isso cria um ciclo de anos contendo anos bissextos.47×52+2=3661007×52+1=3654002000400400/4−400/100+400/400=97
O que é especialmente interessante é que o número total de dias nesse ciclo é um múltiplo inteiro de sete:
400×(7×52+1)+97×1≡400+97≡71×7≡0mod7.
Isso mostra que o ciclo de anos compreende um número inteiro de semanas. Consequentemente, o padrão de dias da semana é exatamente o mesmo de um ciclo para o outro.400
Podemos, portanto, interpretar a pergunta como pedindo a chance de domingos ao amostrar aleatoriamente e uniformemente qualquer ciclo de anos de anos bissextos. Um cálculo de força bruta (usando, digamos, o fato de que 1º de janeiro de 2001 era uma segunda-feira) mostra que dos anos bissextos em cada ciclo têm domingos. Portanto, a chance é400 28 97 5353400289753
Pr(53 Sundays)=2897.
Observe que isso não é igual a : é um pouco maior. Aliás, há a mesma chance de quartas, sextas, sábados ou segundas-feiras e apenas de terças ou quintas-feiras.28/98=2/75327/9753
Para aqueles que desejam fazer cálculos mais detalhados (e podem desconfiar de qualquer simplificação matemática), aqui está o código de força bruta que calcula e examina todos os dias da semana por um determinado conjunto de anos. No final, exibe o número de anos com aparições de cada dia da semana. Está escrito em . 53R
Aqui está sua saída para o ciclo :2001−2400
Friday Monday Saturday Sunday Thursday Tuesday Wednesday
28 28 28 28 27 27 28
Aqui está o próprio código.
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)