CAFE

재후의 역과학

총일수 공식으로 <제라의 요일 공식> 유도하기

작성자재후|작성시간20.08.29|조회수2,328 목록 댓글 0


총일수 공식으로

<제라의 요일 공식> 유도하기



[ 목마와 숙녀 - 작시: 박인환, 작곡: 재후, 노래: 김재현 ]



혹자는

아래의 사이트에 가면

[제라의 공식]이 어떻게 유도되었는 지

알 수 있다고 하는데...



[위키피디아: 제라의 공식(Zeller's Congruence)] 읽어 보기:

 제라의 공식(Zeller's Congruence)




사실은...

위 사이트에서

[제라의 공식]이 어떻게 유도되었는 지

알 수 없습니다.


따라서

여기에서

직접

[그레고리력]의 <총일수 공식>을 사용하여

[제라의 공식]을

독자적으로

유도해보고자 합니다.






제라의 공식 / 첼러의 공식

(Zeller's Congruence)



연도 Y를 100으로 나누었을 때

몫을 c, 나머지를 y라 하면


Y = c×100 + y


이때

cymd일의

요일 공식은 다음과 같습니다.





(단, 1월과 2월은 전년도 13월과 14월)




사용된 기호는

'바닥함수(내림함수) 기호'인데

'가우스 기호' 혹은 '최대정수함수 기호'로 바꾸어도 됩니다.

(※ 기호에 대한 자세한 설명은 맨 아래 ◐공부합시다◑ 코너 참조)


Z를 7로 나눈 나머지 값에 따라

요일은 다음과 같습니다.


Z를 7 나눈 나머지 0: 일요일

Z를 7로 나눈 나머지 1: 월요일

Z를 7 나눈 나머지 2: 화요일

Z를 7 나눈 나머지 3: 수요일

Z를 7 나눈 나머지 4: 목요일

Z를 7로 나눈 나머지 5: 금요일

Z를 7 나눈 나머지 6: 토요일



이것은 1887년 제라가 처음 만든 것으로

이전에 가우스 또한 요일 계산공식을 만들었으나

하나의 공식으로 표현한 것은 아니었고, 표를 이용하는 것이었다고 합니다.


위의 공식은

가장 빨리 그레고리력이 사용되기 시작한 달력의

1582년 10월 15일부터 적용할 수 있습니다.






그레고리력의

총일수 공식


[재후-그레고리력]에서

1년 1월 1일부터

Y년 M월 D일까지

총일수 공식 W

다음과 같습니다.



∴ W = 365Y + [Y]4 [Y]100 + [Y]400 + [153M-1987]5 + D

(단, 1월과 2월은 전년도 13월과 14월)



[☯ 공전과 자전의 함수 관계 (5) : 1월/2월은 전년 13월/14월 적극 활용하기 <그레고리력>] 읽어 보기:

http://cafe.daum.net/habcham/8kmV/121?svc=cafeapi



W를 7로 나눈 나머지 값에 따라

요일은 다음과 같습니다.


W를 7 나눈 나머지 0: 일요일

W를 7로 나눈 나머지 1: 월요일

W를 7 나눈 나머지 2: 화요일

W를 7 나눈 나머지 3: 수요일

W를 7 나눈 나머지 4: 목요일

W를 7로 나눈 나머지 5: 금요일

W를 7 나눈 나머지 6: 토요일







제라의 공식과

총일수 공식의

차이점


[제라의 공식] Z를 7로 나눈 나머지에 따른 요일은 다음과 같습니다.

Z를 7 나눈 나머지 0: 일요일

Z를 7로 나눈 나머지 1: 월요일

Z를 7 나눈 나머지 2: 화요일

Z를 7 나눈 나머지 3: 수요일

Z를 7 나눈 나머지 4: 목요일

Z를 7로 나눈 나머지 5: 금요일

Z를 7 나눈 나머지 6: 토요일


또한

[총일수 공식] W를 7로 나눈 나머지에 따른 요일은 다음과 같습니다.

W를 7 나눈 나머지 0: 일요일

W를 7로 나눈 나머지 1: 월요일

W를 7 나눈 나머지 2: 화요일

W를 7 나눈 나머지 3: 수요일

W를 7 나눈 나머지 4: 목요일

W를 7로 나눈 나머지 5: 금요일

W를 7 나눈 나머지 6: 토요일


여기에는 차이점이 느껴지지 않습니다.


그러나

사실은 아주 중요한 차이점이 있습니다.


[제라의 공식] Z는

이미 7로 나눈 연산이 적용되어 있다는 것입니다.


따라서

[제라의 공식] Z는

요일 구하는 것에

특화되어 있는 공식입니다.


그러나

[총일수 공식]은

7로 나눈 것이 아닙니다.


[총일수 공식]은

원하는 목적에 따라

원한다면 7로 나눠볼 수도 있고,

원한다면 10으로 나눠볼 수도 있고,

원한다면 12로 나눠볼 수도 있습니다.


여기에서는

[총일수 공식] W를 7로 나누면

그 결과로

[제라의 공식]이 유도됨을

증명하고자 합니다.







[총일수 공식]으로부터

[제라의 공식] 유도하기


(증명)


∴ W = 365Y + [Y]4 [Y]100 + [Y]400 + [153M-1987]5 + D


7로 나눈 나머지를 계산할 것이므로

∴ W  365Y[Y]4 [Y]100 + [Y]400 + [153M-1987]5 + D (mod 7)


365 = 7×(52) + 1

365  1 (mod 7)


∴  Y[Y]4 [Y]100 + [Y]400 + [153M-1987]5 + D (mod 7)



[153M-1987]5 = 30M - 397 + [3M-2]5 


30 ≡ 2 (mod 7)

397 ≡ 5 (mod 7)


∴ W  Y + [Y]4 [Y]100 + [Y]400 + 2M-5 + [3M-2]5 + D (mod 7)


2M-5 + [3M-2]5 = [13M-2]5 - 5 = [13(M+1)-15]5 - 5 = [13(M+1)]5 - 8 


∴ W  Y + [Y]4 [Y]100 + [Y]400 + [13(M+1)]5 - 8 + D (mod 7)


≡ 1 (mod 7)


∴ W  Y + [Y]4 [Y]100 + [Y]400 + [13(M+1)]5 + D - 1 (mod 7)



이제 연도 Y를 100으로 나눈 몫을 c, 나머지를 y라 하면


Y = 100×c + y


그리고

M = m, D = d로 놓으면


∴ W  Y + [Y]4 [Y]100 + [Y]400 + [13(m+1)]5 + d - 1 (mod 7)


[Y]4 = [100c + y]4 = 25c + [y]4 

[Y]100 = [100c + y]100 = c + [y]100 = c

[Y]400 = [100c + y]400 = [[100c + y]100]4 = [c]4 



∴ W  (100c+y) + (25c + [y]4- (c) + ([c]4[13(m+1)]5 + d - 1 (mod 7)


∴ W  (124c+[c]4) + (y+[y]4[13(m+1)]5 + d - 1 (mod 7)


124 ≡ 5 (mod 7)


∴ W  (5c+[c]4) + (y+[y]4[13(m+1)]5 + d - 1 (mod 7)


∴ W  [21c]4 + [5y]4 [13(m+1)]5 + d - 1 (mod 7)


그런데

'몫 함수'와 '바닥함수'의 관계에 의하면









그런데

[제라의 공식]에 의하면





따라서



(단, 1월과 2월은 전년도 13월과 14월)



(증명 끝)






계산 사례


문제:

2020년 1월 1일의 요일을 구하시오.




풀이 1):

[총일수 공식] 이용


1월은 전년 13월로 간주해야 하므로

공식을 이용할 때는

2019년 13월 1일의 요일을 구하면 됩니다.



Y = 2019, M=13, D=1


W = 365Y + [Y]4 [Y]100 + [Y]400 + [153M-1987]5 + D


W = 737425

737425 = 7×(105346) + 3


W(Y, M, D) = W(2019, 13, 1) = 737425

7로 나누면 나머지는 3이므로

수요일.


따라서

2020년 1월 1일은

수요일입니다.




풀이 2):

[제라의 공식] 이용



1월은 전년 13월로 간주해야 하므로

공식을 이용할 때는

2019년 13월 1일의 요일을 구하면 됩니다.


[제라의 공식]을 이용하려면

추가적으로

연도를 100으로 나눈 몫과 나머지를 구해줘야 합니다.


2019 = 100×(20) + 19


따라서

c=20, y=19, m=13, d=1




Z = 164

164 = 7×(23) + 3


Z(c, y, m, d) = Z(20, 19, 13, 1) = 164

7로 나누면 나머지는 3이므로

수요일.


따라서

2020년 1월 1일은

수요일입니다.






◐공부합시다◑


기호에 대한 설명



<<바닥함수(내림함수)와 최대정수함수>>

정수이면 그대로 읽어주고

정수가 아니면 바로 아래쪽 정수값을 읽어주는

함수가 바닥함수 Floor(x) 입니다.




그리고

x 이하의 정수값 중 최대값을 취하는 함수를

최대정수함수(greatest integer function)라고 합니다.




(※ [x]를 '가우스 기호'라고 합니다.)


생각하는 관점은 다르지만

[바닥함수]와 [최대정수함수]의 

결과값은 같습니다.








<<천정함수(올림함수)와 최소정수함수>>

정수이면 그대로 읽어주고

정수가 아니면 바로 위쪽 정수값을 읽어주는

함수가 천정함수 Ceiling(x) 입니다.




그리고

x 이상의 정수값 중 최소값을 취하는 함수를

최소정수함수(least integer function)라고 합니다.




(※ 기호 <x>는 제가 독자적으로 사용하는 기호입니다.)


생각하는 관점은 다르지만

[천정함수]와 [최소정수함수]의 

결과값은 같습니다.








<<나눗셈의 몫과 나머지 함수>>

b를 a로 나누었을 때

몫을 q, 나머지를 r이라 하면




특히

'몫 함수'와 '바닥함수'의 관계,

'몫 함수'와 '천정함수'의 관계는

다음과 같습니다.









다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼