Algorytm wyznaczania daty Wielkanocy w danym roku
Algorytm został przedstawiony przez Jean'a Meeusa Butchera w jego książce Astronomical Algorithms w 1991 roku. Może być uznany za lepszy od tego poprzedniego, ponieważ nie wymaga żadnych cyfr dla określonego zakresu czasu i nie ma od niego wyjątków. Wystarczy podać dowolny rok.
2013 rok:
1. Dzielimy liczbę roku przez 19 i wyznaczamy resztę A.
2013:19=105 r 18
A=18
2013 rok:
1. Dzielimy liczbę roku przez 19 i wyznaczamy resztę A.
2013:19=105 r 18
A=18
2. Dzielimy liczbę roku przez 100, wynik zaokrąglamy w dół (odcinamy część ułamkową) i otrzymujemy liczbę B.
2013:100=20,13
B=20
3. Dzielimy liczbę roku przez 100 i otrzymujemy resztę C.
2013:100=20 r 13
C=13
4. Dzielimy B przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę D.
20:4=5,0
D=5
5. Dzielimy B przez 4 i wyznaczamy resztę E.
20:4=5 r 0
E=0
6. Liczymy: (B + 8) : 25. Wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę F.
(20+8):25=28:25=1,12
F=1
F=1
7. Liczymy: (B - F+ 1) : 3, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę G.
(20-1+1):3=20:3=6,(6)
G=6
G=6
8. Dzielimy (19 ∙ A + B - D - G + 15) przez 30 i wyznaczamy resztę H.
(19 ∙ 18+20-5-6+15):30=366:30=12 r 6
H=6
9. Dzielimy C przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę I.
13:4=3,25
I=3
10. Dzielimy C przez 4 i wyznaczamy resztę K.
13:4=3 r 1
K=1
11. Dzielimy: (32 + 2∙E + 2∙I - H - K) przez 7 i otrzymujemy resztę L.
(32+2∙0+2∙3-6-1):7=31:7=4 r 3
L=3
12. Liczymy: (A + 11∙H + 22∙L) : 451, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę M.
(18+11∙6+22∙3):451=150:451=0,332
M=0
M=0
13. Dzielimy (H + L - 7∙M + 114) przez 31 i otrzymujemy resztę P.
(6+3-7∙0+114):31=123:31=3 r 30
P=30
14. Dzień Wielkanocy DW= P + 1
DW=30+1=31
15. Miesiąc M = Zaokrąglenie w dół dzielenia (odcinamy część ułamkową)
(H + L - 7∙M + 114) przez 31.
(6+3-7∙0+114):31=123:31=3,967
M=3
31 marzec 2013
...............................................................................................................................
2016 rok:
1. Dzielimy liczbę roku przez 19 i wyznaczamy resztę A.
2016:19=106 r 2
A=2
1. Dzielimy liczbę roku przez 19 i wyznaczamy resztę A.
2016:19=106 r 2
A=2
2. Dzielimy liczbę roku przez 100, wynik zaokrąglamy w dół (odcinamy część ułamkową) i otrzymujemy liczbę B.
2016:100=20,16
B=20
3. Dzielimy liczbę roku przez 100 i otrzymujemy resztę C.
2016:100=20 r 16
C=16
4. Dzielimy B przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę D.
20:4=5,0
D=5
5. Dzielimy B przez 4 i wyznaczamy resztę E.
20:4=5 r 0
E=0
6. Liczymy: (B + 8) : 25. Wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę F.
(20+8):25=28:25=1,12
F=1
F=1
7. Liczymy: (B - F+ 1) : 3, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę G.
(20-1+1):3=20:3=6,(6)
G=6
G=6
8. Dzielimy (19 ∙ A + B - D - G + 15) przez 30 i wyznaczamy resztę H.
(19 ∙ 2+20-5-6+15):30=62:30=2 r 2
H=2
9. Dzielimy C przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę I.
16:4=4,0
I=4
10. Dzielimy C przez 4 i wyznaczamy resztę K.
16:4=4 r 0
K=0
11. Dzielimy: (32 + 2∙E + 2∙I - H - K) przez 7 i otrzymujemy resztę L.
(32+2∙0+2∙4-2-0):7=38:7=5 r 3
L=3
12. Liczymy: (A + 11∙H + 22∙L) : 451, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę M.
(2+11∙2+22∙3):451=90:451=0,19956
M=0
M=0
13. Dzielimy (H + L - 7∙M + 114) przez 31 i otrzymujemy resztę P.
(2+3-7∙0+114):31=119:31=3 r 26
P=25
14. Dzień Wielkanocy DW= P + 1
DW=26+1=27
15. Miesiąc M = Zaokrąglenie w dół dzielenia (odcinamy część ułamkową)
(H + L - 7∙M + 114) przez 31.
(2+3-7∙0+114):31=119:31=3,839
M=3
27 marzec 2016
...............................................................................................................................2021 rok:
1. Dzielimy liczbę roku przez 19 i wyznaczamy resztę A.
2021:19=106 r 7
A=7
2. Dzielimy liczbę roku przez 100, wynik zaokrąglamy w dół (odcinamy część ułamkową) i otrzymujemy liczbę B.
2021:100=20,21
B=20
3. Dzielimy liczbę roku przez 100 i otrzymujemy resztę C.
2021:100=20 r21
C=21
4. Dzielimy B przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę D.
20:4=5,0
D=5
5. Dzielimy B przez 4 i wyznaczamy resztę E.
20:4=5 r 0
E=0
6. Liczymy: (B + 8) : 25. Wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę F.
(20+8):25=28:25=1,12
F=1
F=1
7. Liczymy: (B - F+ 1) : 3, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę G.
(20-1+1):3=20:3=6,(6)
G=6
G=6
8. Dzielimy (19 ∙ A + B - D - G + 15) przez 30 i wyznaczamy resztę H.
(19 ∙ 7+20-5-6+15):30=157:30=5 r 7
H=7
9. Dzielimy C przez 4, wynik zaokrąglamy w dół i otrzymujemy liczbę I. 21:4=5,25
I=5
10. Dzielimy C przez 4 i wyznaczamy resztę K.
21:4=5 r 1
K=1
11. Dzielimy: (32 + 2∙E + 2∙I - H - K) przez 7 i otrzymujemy resztę L.
(32+2∙0+2∙5-7-1):7=34:7=4 r 6
L=6
12. Liczymy: (A + 11∙H + 22∙L) : 451, wynik zaokrąglamy w dół do jedności i otrzymujemy liczbę M.
(7+11∙7+22∙6):451=216:451=0,47
M=0
M=0
13. Dzielimy (H + L - 7∙m + 114) przez 31 i otrzymujemy resztę P.
(7+6-7∙0+114):31=127:31=4 r 3
P=3
14. Dzień Wielkanocy DW= P + 1
DW=3+1=4
15. Miesiąc M = Zaokrąglenie w dół dzielenia (odcinamy część ułamkową)
(H + L - 7∙M + 114) przez 31.
(7+6-7∙0+114):31=127:31=4,09
M=4
Brak komentarzy:
Prześlij komentarz