回覆列表
  • 1 # 使用者9277124858352

    一年的定義是 一恆星年, 即地球繞著太陽轉一圈,測下來365.2422****(無理數),但為了方便認為用365近似,但是這個誤差在長久來看是巨大的

    (請看黑板) 假設人類向後發展了10w年(希望不會被外星人滅掉)

    如果沒有閏年,誤差為(365.2422 - 365)* 10w = 24220天,

    差了66年多,相當於一個人在2019年,一個人在1953年

    2. 如果設定每4年一個閏年,平均每年有 (365*3 + 366)/ 4 = 365.25天

    誤差為 (365.2422 - 365.25)* 10w = -780天

    what? 怎麼是負的,好吧,一下子減多了,不過貌似誤差好了一些了,

    780天前是什麼時候,大概2年前多一點

    3. 這時候要再優化了, 再規定閏年是4的倍數但不是100的倍數,比如2100就人為設定成非閏年

    假設從101-200為一個樣本,總共為100年, 其中閏年有24個,則平均每年有

    (24*366+ 76*365)/ 100 = 365.24天

    誤差為(365.2422 - 365.24)*10w = 220天

    又變成正的了,誤差進一步縮小,也就是每10萬年誤差不到1年

    4. 能被400整除,同理

    假設從1-400為一個樣本,總共400年,其中每一個100年的閏年有24個,則400年有96個,但是人為加了個公元400年,總共有97個閏年

    則平均每年有 (97*366 + 303*365)/ 400 = 365.2425天

    誤差為 (365.2422 - 365.2425) * 10w = -30天

    誤差更小了,每10萬年只差不到一個月

    (黑板演示結束)

    也就是說當前的演算法,每10萬年,會有30天的誤差(其實這個誤差已經非常小了,誤差率0.00008219%)

    當然,這個演算法可以繼續最佳化,比如規定每1000年,每4000年再有一個類似的遞迴演算法,進一步可以把每十萬年的誤差降低到1天以內。

    之前頭暈了,寫了一堆單位不對的東西.....

    sorry!

    現在修正了,大家看看有沒有別的啥問題了

  • 中秋節和大豐收的關聯?
  • 孩子喝牛奶引起面板瘙癢是怎麼回事?