# Time 1, Exercise 1: how the three natural cycles fit together # Find year / month, how far 12 and 13 months miss a year, and which whole # number of years lines up best with a whole number of months (up to 39 years). YEAR = 365.2422 # tropical year, days MONTH = 29.530589 # synodic month, days print("year / month:", round(YEAR / MONTH, 3)) for n in (12, 13): total = n * MONTH print(n, "months =", round(total, 3), "days; year minus months =", round(YEAR - total, 3)) best = None for years in range(1, 40): months = round(years * YEAR / MONTH) gap = abs(months * MONTH - years * YEAR) if best is None or gap < best[0] - 0.0001: best = (gap, years, months) print(years, "years ~", months, "months, gap", round(gap, 3), "days") # Output when run: # year / month: 12.368 # 12 months = 354.367 days; year minus months = 10.875 # 13 months = 383.898 days; year minus months = -18.655 # 1 years ~ 12 months, gap 10.875 days # 2 years ~ 25 months, gap 7.78 days # 3 years ~ 37 months, gap 3.095 days # 8 years ~ 99 months, gap 1.591 days # 11 years ~ 136 months, gap 1.504 days # 19 years ~ 235 months, gap 0.087 days # # Reading the output: a year holds 12.368 months, so 12 months fall 10.875 # days short and 13 overshoot by 18.655 days. Neither works. Searching up to # 39 years, each new record for the best fit is printed; the winner is 19 # years = 235 months, off by only 0.087 days (about two hours). This 19-year # match was noticed by ancient astronomers; Time 3 returns to it.