基數 星期速演算法 教你3秒速算星期 詳盡版

星期速演算法——教你3秒速算星期
[迄今最系統最詳盡的星期速算科普文獻]
東 丁
星期與我們的生活關係密切。

有些人能快速心算任意日期的星期日數,常被視為神奇,甚至被媒體稱作奇人。實則不足為奇,速算星期只需簡單的加減心算和少量記憶即可完成。你學習了本文介紹的速算方法,稍加練習,便可在3秒鐘內算出星期,立馬變為奇人。學會速算星期,如同胸存日曆,利己利人,好處多多,且可終生受用。本文以星期基數法為重點,參以筆者多年研創心得,由淺入深,系統介紹,引導學習,力求推廣星期速算的實用妙法,助益社會。

一、 基數法速算星期的基本方法
基數法計算星期由來已久。該法簡單快捷,易學易記,適合心算,最切實用。我們為每個公曆年份的每個月都確定一個星期基數,稱月基數,是0~6之間的正整數。某個月的月基數等於該月首日的星期日數減1,亦即等於上月末日的星期日數。公曆年份每年有12個月基數,可組成一組月基數數列。如2014年1~12月的月基數是:
月 份 1 2 3 4 5 6 7 8 91011 12
月基數 2 5 5 1 3 6 1 4 0 2 5 0
星期計算公式:
[日(號)數 + 月基數] / 7……餘數(即星期日數)
要計算某月某日是星期幾,只需用日(號)數加上該月的月基數,再除以7(或直接減去7的倍數),所得餘數即為星期日數。餘數是0則為星期日。日(號)數 + 月基數小於7時可直接得出星期日數,如等於7則為星期日。在基數法計算中,7=0,逢7化0,必要時也可化0為7 。
例如:求2014年3月8日是星期幾。3月的月基數是5,則:
(8 + 5)/ 7 ……餘6
答案是星期六。
又如:求2014年10月1日的星期。10月的月基數是2,則:
1 + 2 = 3
答案是星期三。
疑為繁難之法,說來如此簡單。你有興趣一試嗎?
2014年的一組月基數255 136 140 250需要背熟記牢,計算時要準確快速對應月份,分季誦記利於快速對位。運用上法,2014年任一日期的星期日數都可用心算輕鬆快速算出,熟而生巧,用時3秒應該綽綽有餘了!
二、鄰近年份星期速算
記住了一個年份的月基數,前後年份的月基數就很容易推算出。下一年如果是平年,其月基數是上年各月月基數+1,逢7化0 ;下一年如果是閏年,其月基數是上年1、2月月基數+1、3~12月月基數+2;閏年後接平年,則此平年月基數是上年1、2月月基數+2、3~12月月基數+1。
因為逢7化0,所以公曆年份全部月基數數列只有7組(加上閏年可分化為14組),循環反覆,每5~6年循環一遍。7組月基數循環數列及對應年份(1979~2028)如表一:
表一月基數循環數列及對應年份(1979~2028)
月份 1 2 3 4 5 6 7 8 910 11 12 對 應 年 份
0 3 3 6 1 4 6 2 5 0 3 5 1979 / 90 96 01 07 / 18 24
1 4 4 0 2 5 0 3 6 1 4 6 80 85 91 / 02 08 13 19 /
2 5 5 1 3 6 1 4 0 2 5 0 / 86 92 97 03 / 14 20 25
3 6 6 2 4 0 2 5 1 3 6 1 81 87 / 98 04 09 15 / 26
4 0 0 3 5 1 3 6 2 4 0 2 82 88 93 99 / 10 16 21 27
5 1 1 4 6 2 4 0 3 5 1 3 83 / 94 2000 05 11 / 22 28
6 2 2 5 0 3 5 1 4 6 2 4 84 89 95 / 06 12 17 23 /
如表,2015年月基數為366 240 251 361;2001年月基數為033 614 625 035。
閏年月基數佔用2行,即1、2月用本行,3~12月移用下一行。如2016年月基數為401 462 403 513。
表一7組月基數數列,只要記住一組,就可全部推算出來。閏年的月基數數列不必刻意記憶,可從7組數列中推算出。
應用此法一年,一組月基數數列可自然記熟,連用五六年,全部數列一一印入腦中,再加背誦強化記憶,則可爛熟於心、終身難忘了。
年首基數:
1月的月基數又稱作年首基數,可簡稱年基數。年首基數在星期速算中很重要,可用它代表一組月基數數列。知道或記住某公曆年份的年首基數,就可以知道或推算出該年各月的月基數,也就能很容易地推算出相鄰年份的年首基數。如能記住近數十年中年首基數是0的年份,再輔以指演算法(見後),則可提高計算速度。又如1944、1955、1966、1977、1988(3~12月)、2000、2011、2022、2033等年份末2位數字相同,而年首基數都是5,頗具特色,可資記憶。
指演算法:
在一手(如左手)食指的三個指節的正側面及指尖設定7個數位,指尖頂端為0,三指節正面(掌心側)從指尖順序而下為1、2、3,三指節外側面從指根順序而上為4、5、6,分別代表年首基數0~6。用拇指尖定位,從已知年首基數的數位順序或逆序點定數位,默數年份,可助推算。
如已知2007年年首基數是0,求2011年年首基數,則可從指尖0位起順序點數,0位是07年, 1、2位是08年(閏年佔兩位),3位09年,4位10年,5位11年,則2011年年首基數是5。
三、 任意年份的星期速算
要計算過去或將來任意公曆年份的星期,很明顯,首先必須推算出所求年份的年首基數。求出年首基數,相當於知道了月基數,計算也就過半了。計算年首基數,我們以20世紀年首基數的演算法為基準。其它世紀的年首基數,均可據20世紀相同年份年首基數調整而得。
1、 20世紀年首基數計算
在本速演算法中,20世紀年首基數的演算法是其它世紀演算法的依據,頗顯重要。世紀年份的劃分,皆以00~99為起迄,稍異於通常劃分方法。
20世紀(此指1900~1999年)年首基數計算公式:
[公曆年份末2位/4(取整數)+公曆年份末2位] / 7……餘數(即年首基數, 閏年-1)
例如:求1949年年首基數及10月1日星期日數。
計算年首基數:[49 / 4(取整數)+ 49] / 7……餘5(即年首基數)
計算星期日數:該年月基數即為511 462 403 513,10月月基數5,則:
(1+5)/ 7……餘6 或:1+5=6
答案:1949年年首基數是5 , 10月1日是星期六。
又如:求1964年(閏年)年首基數。
(64 / 4+64) / 7 ……餘3-1(閏年調整)=2
答案:1964年年首基數是2。(該年月基數為256 240 251 361)。
星期計算中,要特別注意區分閏年,一旦忽略,結果必誤。凡閏年的計算均較平年略有調整,一般是照平年計算後-1。
2、本世紀年首基數計算
本世紀(即21世紀,此指2000~2099年)年份的年首基數,可先按上述20世紀相同年份(指末2位)年首基數的演算法計算,所得結果再作世紀調整-1(或+6),即為所求年份的年首基數。
例如:求2030年年首基數。
[30 / 4(取整數)+30] / 7……餘2-1=1
答案為1。
又如:求2000年(閏年)年首基數。
(00/4+00)/ 7……餘0(可化為7)-1(閏年調整)-1(世紀調整)= 5
或(00/4+00)/ 7……餘0-1(閏年調整)+ 6(世紀調整)= 5
答案為5。此例(00/4+00)/ 7可心算直接得0 ,以求快速。
3、其它世紀年首基數計算
其它世紀年份的年首基數計算,可在20世紀相同年份(指末2位)年首基數計算結果上按世紀調整值作世紀調整即可。
(1)鄰近世紀年首基數計算
世紀調整值可按下式得出:
世紀(序)數 / 4……餘數→對應調整值
餘數對應的年首基數世紀調整值見表2:
表2 餘數對應的世紀調整值及世紀年份
餘數 對應的年首基數世紀調整值 對 應 世 紀 年 份(以20世紀相同年份年首基數為基準) (16~23世紀)
0 ±0 20(1900~1999)、16(1583~1599)世紀
1 -1(或+6) 21(2000~2099)、17(1600~1699)世紀
2 -3(或+4) 22(2100~2199)、18(1700~1799)世紀
3 -5(或+2) 23(2200~2299)、19(1800~1899)世紀
鄰近世紀的對應調整值應當熟記,必要時才臨場推算。
例如:求17世紀年首基數調整值。
17 / 4……餘1→對應調整值+6(或-1)。
表中20、21、19世紀應重點記憶掌握。以20世紀為基準(計算後不調整),21世紀調整值-1(或+6),19世紀調整值+2(或-5)。調整計算均逢7化0, 0=7,必要時也可化0為7。
已知世紀調整值後就可推算各世紀年首基數。
例如:求1895年年首基數。19世紀調整值為+2(或-5),則:
按20世紀基準運算:[95 / 4(取整數)+ 95] / 7……餘6
世紀調整:6+2(調整值)= 8-7(逢7化0)=1 或:6-5(調整值)=1
答案是1。
又如:求1840年(閏年)年首基數。19世紀調整值為+2(或-5),則:
(40/4+40)/ 7……餘1-1(閏年調整)=0
0 + 2(世紀調整) =2
答案是2。
(2)1582年10月15日之前的年首基數計算
星期紀日制度自公元前321年3月7日由古羅馬君士坦丁大帝正式頒行沿用至今,但當今世界通行的公曆是從公元1582年教皇格列高里十三世宣布改歷後才頒行,原儒略曆1582年10月4日的下一天被定為格列歷(即今公曆)10月5日,中間跳過10天。因此,在星期計算中,上述計算方法只適用於1582年10月15日之後,此前即1582年10月4日及以前的日期,計算方法稍異。
1582年可視為有兩個年首基數,1月1日~10月4日年首基數是0;10月15日~12
月31日採用年首基數是4的月基數數列。而公元紀年中的其它年份都只有一個年首基數。
1582年10月15日之前至公元元年之間的各世紀,其年首基數調整值可按上述方法(餘數對應值)確定後,再+3(或-4)。
例如:求公元321年年首基數。此年屬4世紀,則:
世紀調整值:4 / 4……餘0→對應調整值±0
年首基數:[21/4(取整數)+21]/7……餘5-0(對應調整值)-4 = 1
答案:該年年首基數是1。
公元前年份年首基數的計算方法與公元後年份不同,稍顯複雜,本文從略。
四、 簡化基數法速算星期
簡化基數法與前述基數法原理相同,只是記憶內容和計算程序簡化。此法將前法的月基數拆分為基準月基數+年首基數,計算時只需記憶一組固定的基準月基數,即:
0 3 3 6 1 4 6 2 5 0 3 5
可依月份記誦為:一0二3三3,四6五1六4,七6八2九5,十0冬3臘5。
星期計算公式:
[日(號)數+基準月基數+年首基數] / 7……餘數(即星期日數, 閏年3~12月+1)
此法要點是記憶或計算年首基數。年首基數的推算仍需依前述方法。得數的閏年調整與前述方法略異,不是-1,而是3~12月+1(1、2月不調)。
例如:求2015年12月25日是星期幾。此例日數是25,12月的基準月基數是5,年首基數經推算是3,計算如下:
(25+5+3)/ 7 ……餘5
答案是星期五。
又如:求1976年7月28日的星期。此例年份是閏年,所求月份需作閏年調整+1,年首基數經推算是3。計算如下:
(28+6+3)/ 7……餘2+1(閏年調整) =3
答案是星期三。
此法不必記憶逐年變化和閏年分化的多組月基數,任何年份均按相同的一組月基數(即基準月基數)計算,以不變應萬變,簡明易記。雖要多加一個年首基數,但因各月的月基數固定,減小了月基數月份定位的難度,簡化記憶,使基數法速算星期方法更精鍊,更簡便實用。此法較適合需要推算年首基數的較遠年份的星期計算,對於當年和鄰近年份的計算,不如前法(使用7組循環月基數)的計算來的直接,計算速度或許會稍受影響。但若使用得法,運用熟練,亦可與前法不相上下,各有千秋。
五、 其它計算公式及驗算
有時也可採用其它一些公式來計算星期,藉以對速算結果進行驗算,或保證某些重要日期星期計算的準確性。這些公式略顯繁瑣,快速心算有一定難度,主要用作驗算、核查。有速算特長者也不妨嘗試用以速算星期。 公式一:
年首基數=(公曆年份+公曆年份/4+公曆年份/400-公曆年份/100)/ 7……餘數-1
(閏年-2)
註:帶公曆年份的分數式計算只取整數。
例如:求1921年年首基數。
(1921+1921/4+1921/400-1921/100)/7……餘6-1=5
答案是5。 公式二:
星期日數=(公曆年份+公曆年份/4+公曆年份/400-公曆年份/100+計算日至年首日數)/ 7 ……餘數-1
例如:求1949年10 月1日是星期幾。
(1949+1949/4+1949/400-1949/100+274)/7……餘0(化為7)-1=6
答案是星期六。
六、速算技巧的靈活運用
在星期速算中,全部運算必須使用心算,除了熟練掌握基數法的基本原理方法外,還應當靈活運用各種速算技巧,以盡量提高運算速度。
如(日數+月基數)/ 7,可以以減帶除,直接減去7或7的倍數。
又如:日數+月基數,日數是7的倍數時,可視為0,省卻相加。
再如:月基數為0時,不必再加,省去可有可無的計算;分式中的分子或被除數是0,不必計算,直接得0;某些算式如(年份末2位/ 4+年份末2位)/ 7, 其中年份末2位為00時,該算式可直接視為0,亦不必計算,減掉幾道運算程序。
計算公式可依運算規則變通運用。例如「閏年-1」,可依規則移前移後,也可與其它調整值合併運算,如與世紀調整值-1合併為-2。
推算年首基數時,靠記憶(或記憶加指演算法)比臨場計算要快時,應採用前法。能記憶的計算數據盡量背誦記熟,最大限度地減少臨場計算,以求快速。
可以自行設計便於心算任意年份年首基數的計算草式。還可以運用其它速算技巧如珠心算。
總之,靈活運用速算技巧必須以熟練掌握基本方法為基礎,熟能生巧,活學活用才可創新,進而精益求精,達到準確快速合乎實用的目的。
結語:
基數法計算星期,是世界上沿用已久的方法,本文匯入筆者多年對星期速算方法的探求與使用心得,更具實用性。學習使用本文介紹的星期速算方法,應當以基數法速算星期的基本方法和鄰近年份的計算為重點,重在日常實用。在熟練掌握一般方法的基礎上,再求深入,作較遠年份的星期推算。星期速算只有多用多練,多思多悟,才能由熟生巧,巧而至精。當年及鄰近年份的星期推算一般可在3秒內完成,久遠年份的星期計算應逐步加速,爭取達到10秒以內。
速算星期貌似神奇,實則簡單,一日學會,一勞永逸,一生受益,能為我們的生活、工作和學習帶來便利,青少年會獲益更大。包括家長在內,都不應該錯過學習此法的機會。筆者自上世紀五十年代小學時期始用此法,已延續50餘年,受益匪淺。在當今手機能查日曆的時代,速算星期絕非無用,它是一種實用技能,隨口而出,遠較手機方便,遠超手機日曆存量;它還是一種大腦體操,一種精神力量,會使我們的生活更加豐富多彩。
如此簡單易學方便實用的星期速算妙法,學與用,讀者諸君大可一試。
1978年7月初稿,2014年3月第四次修改

推薦閱讀:

二位數乘法你有哪些妙招和技巧?
如何快速計算出一個兩位數的平方?
六大實用速算口訣,快教給孩子吧!
心算和速算有沒有什麼常用的方法或者有沒有相關的書籍推介?
你心算的時候腦子裡的畫面是什麼樣的?

TAG:演算法 | 星期 | 速算 | 算法 | 基數 |