相信大家都知道復活節的日期年年不同。那究竟復活節的日期是怎樣計算的呢?
根據羅馬教會定出的規則,復活節的日期是在3月21日當日或之後的滿月日後的首個星期日。這個規則非常奇怪,究竟教會為何要定出如此令人難以理解的方法?
這規則同時考慮到陰曆、陽曆及星期等的曆法概念,非常複雜。1800年,有「數學王子」之稱的德國數學家高斯就發明了一個演算法去計算不同年份中的復活節日期。
發明復活節演算法的數學家哥斯 |
演算法如下
1. a = 年份
(mod 19) (即年份除以19的餘數,下同)
2. b = 年份
(mod 4)
3. c = 年份
(mod 7)
4. k = ⌊ 年份 / 100⌋ (小於或等於年份除以100的最大整數,下同)
5. p = ⌊ (13 + 8) / 25⌋
6. q = ⌊ k / 4 ⌋
7. M = 15 – p + k – q (mod 30)
8. N = 4 + k – q (mod 7)
9. d = 19a + M (mod 30)
10. e = 2b + 4c + 6d + N (mod 7)
11. 復活節的日子是3月(22 + d
+ e)日或4月(d + e
– 9 )日
12. 如果d
= 29及e = 6,那麼用4月26日去取代4月19日
13. 如果d
= 28,e = 6及11M +
11 (mod 30) < 19,那麼用4月25日去取代4月18日
我們試以2022年為例子去試用一下這演算法。
1. a = 2022 (mod 19) = 8
2. b = 2022 (mod 4) = 2
3. c = 2022 (mod 7) = 6
4. k = ⌊ 2022 / 100 ⌋
= 20
5. p = ⌊ (13 + 8 x 20) / 25 ⌋
= 6
6. q = ⌊ 20 / 4⌋ = 5
7. M = 15 – 6 + 20 – 5 (mod 30) = 24
8. N = 4 + k – q (mod 7) = 5
9. d = 19(8) + 24 (mod 30) = 26
10. e = 2(2) + 4(6) + 6(26) + 5 (mod 7) = 0
11. 因此復活節的日子是3月(22 + 26
+ 0)日或4月(26 + 0
– 9 )日,即3月48日或4月17日。3月48日當然是不可能的,那復活節的日期應是4月17日。這也與我們的認知相符。
由於這演算法很複雜,史丹福好難在此詳盡解釋它的原理,甚至高斯自己也曾表示「不可能展示他是透過甚麼分析去得出這公式」。不過簡單來說,演算法分了兩部分,第一部分是估月亮的運行,第二部分是確實計算出月圓日後的星期日。
沒有留言:
張貼留言