丙戌探索
這個問題的簡化版本就是已知今天星期幾,然後根據同餘來推算另外某一天是星期幾,這其中有很多簡化的規則。例如,365除以7的餘數為1,因此非閏年的一年後的今天恰好是星期數加一;又例如「判決日原則」,即4月4日,6月6日,8月8日,10月10日,12月12日都與2月最後一天的星期數相同,這是一種便於記憶而且也便於計算數日子的方案,我們可以選取判決日中的任意一天做為推算的標準,更多技巧我在這裡就不再介紹了。
一種比較複雜的推算方法涉及到查詢「世紀表格」,然而也有一種簡單的方法,那就是利用「蔡勒公式(Zeller's congruence)」進行計算,這個公式由德國數學家蔡勒最早提出。這一公式如下圖所示,公式來源於維基百科。我們在網絡上能找到大量用計算機程序實現蔡勒公式計算的程序。
不過在應用這個公式的時候需要注意,由於羅馬教廷曾經在1582年改用了新曆法,在1582年10月4日的後一天改為1582年10月15日,這一曆法沿用至今,如果涉及到在這之前的推算,需要把多加進去的10天減去。
傅渥成
這個問題需要具體看語境的。
如果告訴你今天是週日,那麼問你再過1023344天是周幾,這樣很容易算。為什麼?因為我們只要mod 7就可以了。mod是同餘,它具有一些很好的性質——比如說積性。
ab(mod7) = a(mod7)*b(mod7)
所以,就算你問我再過2018的2018次方天是周幾,我也很容易算出來,因為我掌握了同餘的數學性質。
我給你舉一個例子吧。
今天是週日,再過125天是周幾?
125(mod7)=5*25(mod7)=5(mod7)*25(mod7)=5(mod7)*4(mod7)=20(mod7)=6(mod7)
所以,再過125天是周6。
我舉的125這個例子當然很簡單,但對於比較大的數字,也是可以用這個方法算的。
但是,如果問題不是像上面這樣問的,那就難了,因為涉及到閏年的問題,也涉及到閏月的問題,比如你問我公元4326年的9月1日是周幾,這樣的問題我就回答不了了,因為要去算閏年與閏月,算起來很麻煩,而且沒有什麼意義,所以我不回答這類問題的。
瀟軒
答:在初等數論中,有很多根據年月日計算星期的公式,我來介紹一個。
相關知識
在介紹公式前,我們先來了解一些數學和公曆相關的知識:
(1)閏年規則:四年一閏,百年不閏,四百年再閏,閏年是366天,平年是365天;
(2)閏月規則:閏年時,多的一天都加到二月中,平年二月28天,閏年二月29天;
(3)格里高利曆:我們現在使用的公曆,傳至西方,叫做格里高利曆;
在1582年10月4日(包括4日)前,羅馬使用儒略曆,羅馬教皇格里高利十三世改革曆法,針對哥白尼的日心說修正了舊曆法,規則:1582年10月4日接下來的一天為10月15日,相當於曆法中少了10天,但是星期繼續接著前一天的;
(3)取整符號:[a]表示對實數a取整,也就是拋棄小數部分,只留下整數部分,比如"[3.7865]=3";
(4)同餘式:若m是一個正整數,a、b為整數,且滿足.a=b+km(k為整數),也就是說a和b除以m的最小正餘數相同,則稱a與b對模m同餘,記作a≡b(mod m);
根據以上曆法規則和數學工具,就可以利用同餘技巧來處理,因為我們計算某一天是星期幾,只需要選定一個固定的日期,然後計算和另外一個日期的相差天數對“7”取餘即可。
蔡勒公式
其中符號:
w:表示星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六,0-星期日;
c:表示年份前兩位數值;
y:表示年份後兩位數值
m:表示月份,但是對於1、2月份需看作前一年的13、14月,這是為了簡化閏年規則導致的複雜度;
d:表示“日”;
以上兩個公式中,第二個其實就是第一個公式中的數值,加10後再取模,需要注意的是,在公曆中1582年10月5日~1582年10月14日的這十天,是不存在的。
實際應用
比如我們來計算2018年9月2日,帶入第一個方程:
w=(18+[18/4]+[20/4]-2*20+[13(9+1)]/5)+2-1)(mod7)
=(18+4+5-40+26+1)(mod7)
=14(mod7)
=0
於是,2018年9月2日這天,就是星期天!
當然,我們現在手機裡有了萬年曆,實際當中就不需要去計算了。
好啦!我的答案就到這裡,喜歡我們答案的讀者朋友,記得點擊關注我們——艾伯史密斯!
艾伯史密斯
已知今天是9月1日星期六,求9月10日是周幾?
9月10日到9月1日差9天除以一週7天等於1餘2,所以9月10日就是週六往後數兩天,就是週一。
同理計算今天之前的日期,沒有餘數的話,今天周幾,那天就是周幾;有餘數的話,餘數是幾,往前數幾天。。
請勿極端
每年每月的對應一個小於7的數,就是當月的大於7的日期加上這個數除以7,餘數是幾就是星期幾,這12個數這個要按年計算,60年一甲子,也就是總共有60組數,這樣就可以知道任意一年的任何一天了,不過個人覺得沒有多大意義