기금넷 공식사이트 - 복권 조회 - 요일 계산 방법
요일 계산 방법
특정 날짜가 무슨 요일인지 어떻게 계산하나요?
——젤러의 공식
역사상 특정 요일이 무슨 요일인가요? 앞으로는 무슨 요일인가요? 이 문제와 관련하여 많은 계산식(2개의 일반 계산식과 일부 조각별 계산식)이 있는데, 그 중 가장 유명한 것이 Zeller식이다. 즉, w=y [y/4] [c/4]-2c [26(m 1)/10] d-1
수식의 기호는 다음과 같은 의미를 갖습니다. w: 주 ; c: 세기- 1; y: 연도(두 자리); m: 월(m은 3보다 크거나 같고 14보다 작거나 같습니다. 즉, Zeiler의 공식에서 특정 연도의 1월과 2월은 계산은 전년도의 13일과 14일로 간주됩니다. 예를 들어 2003년 1월 1일은 2002년 12월 1일로 계산됩니다. d: day는 반올림을 나타냅니다. 즉, 정수 부분만 필요합니다. (C는 세기 빼기 1, y는 연도의 마지막 두 자리, M은 월, d는 일입니다. 1월과 2월은 전년도 13, 14월을 기준으로 계산해야 합니다. 이때 , C, y는 모두 1년의 값으로 계산됩니다. )
계산된 W를 7로 나누고 나머지가 요일입니다. 나머지가 0이면 일요일이다.
2049년 10월 1일(국경일 100주년)을 예로 들어 Zeller 공식을 사용하여 계산하면 다음과 같습니다.
Zeller 공식: w = y [y/4] [c/4]-2c [26(m 1)/10] d-1
=49 [49/4] [20/4]-2×20 [ 26 × (10 1)/10] 1-1
=49 [12.25] 5-40 [28.6]
=49 12 5-40 28
=54(7로 나누면 나머지 5)
즉, 2049년 10월 1일(국경일 100주년)은 금요일이다.
당신의 생일(태어난 해, 올해, 내년)은 언제인가요? 한번 시도해 보는 것도 좋을 것 같습니다.
그러나 위 공식은 1582년 10월 15일 이후의 상황에만 적합하다(당시 교황은 카이사르 대왕이 제정한 율리우스력을 오늘날 사용하는 그레고리력인 그레고리력으로 변경했다) ).
과정의 도출: (추론에 관심이 없는 분들은 생략하셔도 됩니다.)
주간 시스템은 고대 전통을 가지고 있는 시스템입니다. '성경 창세기'에는 하나님이 6일 동안 세상을 창조하시고 7일째 안식하셨다고 규정하고 있기 때문에 사람들도 7일을 주기로 삼아 일과 생활을 정리한다고 합니다.
일 , 일요일은 휴무입니다. 실용적인 관점에서는 7일 주기가 더 적합합니다. 그래서
중국의 전통적인 작업 주기는 10일이지만(예를 들어 왕보의 "등왕각 서문"에 언급된 "10일의 휴식")
공무원은 10일마다 근무하지만 주기는 10일 휴무)이지만 나중에는 서양식 주간 제도도 채택했습니다.
일상에서 우리는 특정 요일이 무슨 요일인지 아는 문제에 자주 직면합니다. 때때로 우리는 역사상 특정 요일이 무슨 요일인지 알고 싶어합니다. 보통 이 문제를 해결하는 가장 효과적인 방법은 달력을 보는 것이지만, 우리는 수천년의 역사를 지닌 만년 달력은커녕 달력을 항상 가지고 다니지도 않습니다. 컴퓨터 프로그래밍에서 특정 요일의 요일을 계산하려면, 만년력을 미리 저장해 두는 것은 더욱 비현실적입니다. 이때, 연월일로부터 요일을 추론하기 위해 어떤 공식을 사용할 수 있는 방법이 있습니까?
대답은 '그렇다'입니다. 사실 우리도 종종 이런 일을 합니다. 간단한 예부터 시작해 보겠습니다. 예를 들어, 2004년 5월 1일이 토요일이라는 것을 알고 있다면 "세계 금연의 날"이 2004년 5월 31일인 요일을 계산하는 것은 어렵지 않습니다. 우리는 1일부터 31일까지 손가락으로 셀 수 있고, 동시에 주를 셀 수 있으며, 마침내 5월 31일이 월요일이라는 것을 셀 수 있습니다.
사실 수학적 계산을 할 때 손가락이 부러질 필요는 없습니다. 우리는 주가 7일 후에 돌아오는 것을 알고 있으므로 5월 1일은 토요일이고, 7일 후인 5월 8일도 토요일입니다. 날짜로 환산하면 8-1=7이며, 이는 7의 배수입니다. 마찬가지로 5월 15일, 5월 22일, 5월 29일도 토요일이고, 날짜와 5월 1일의 차이는 각각 14, 21, 28이고
모두 7의 배수입니다. 5월 31일은 어떻습니까? 31-1=30. 7의 배수는 아니지만 31을 7로 나누면 나머지가 2가 됩니다.
5월 31일이 있는 주가 5월의 주로부터 이틀 뒤라는 뜻입니다. 1위. 토요일 이틀 뒤 월요일이다.
이 간단한 계산은 주 계산에 대한 기본 아이디어를 알려줍니다. 먼저 계산하려는 날 이전의 특정 요일을 알아야 합니다.
이 날을 계산의 기준으로 삼아 계산
"원산지"에 해당합니다. 둘째, 계산하려는 날과 결정된 날짜의 차이가 몇 일인지 확인합니다. 이 날짜의 차이를 7로 나눕니다. 나머지는 계산하려는 날의 주가 결정된 주 이후임을 의미합니다. 며칠. 나머지가
0이면 두 날의 날짜가 같다는 뜻입니다. 분명히, "원산지"로 요일을 일요일로 선택하면 나머지는 요일과 정확히 동일하므로 계산이 더 편리해집니다.
그렇지만 두 날 사이의 일수를 직접 계산하는 것은 여전히 번거롭습니다. 예를 들어 1982년 7월 29일부터 2004년 5월 1일까지의 기간은 7947일로 한 번에 계산할 수 없습니다. 여기에는 세 가지 기간이 포함됩니다. 첫째, 1982년 7월 29일 이후의 남은 일수, 둘째, 1983년부터 2003년까지 21년 동안의 총 일수, 셋째, 2004년부터입니다.
설날부터 5월 1일까지의 일수입니다. 두 번째 문단이 21*365 5 = 7670일로 계산하기 쉽습니다.
5가 추가된 이유는 이 기간 동안 5번의 윤년이 있기 때문입니다. 첫 번째와 세 번째 문단이 더 까다롭습니다. 예를 들어 세 번째 문단에서는 5월 이전 4개월의 일수에 날짜 값을 더해야 합니다. 즉, 31 29 31 30 1 =122일입니다. 마찬가지로 첫 번째 문단에서는 7월 이후 5개월의 일수에 7월의 남은 일수를 더해야 하며 1일은 155일입니다.
따라서 총 *** 사이의 일수는 122 7670 155 = 7947일입니다.
잘 생각해 보세요. '원산지'의 날짜를 12월 31일로 선택하면 첫 번째 기간은 1년이 됩니다.
이런 식으로 첫 번째 기간은 첫 번째 기간과 두 번째 기간을 합산하여 계산할 수 있으며, 전체 연도의 총 수는 두 날의 연도 차이에서 1일을 뺀 것과 정확히 같습니다. "원산지" 날짜가 BC 1년 12월 31일(또는 천문학자들이 사용하는 AD 0 12월 31일)로 추가로 선택되면 전체 연도의 총 숫자는 계산된 날짜의 연도를 정확히 원하는 값으로 줄입니다. 하나.
이 단순화 후에는 두 가지 기간만 계산하면 됩니다. 첫째, 전체 연도의 총 일수, 둘째, 올해의 하늘을 계산하려는 일수입니다. . 공교롭게도 그레고리력의 연도와 월 설정에 따라 이렇게 거꾸로 계산하면 기원전 1년 12월 31일은 우연히 일요일이 됩니다. 즉, 이렇게 계산한 총 일수는 나머지를 7로 나눈 값이 됩니다. 정확히 무슨 요일인지. 따라서 이제 문제는 단 하나입니다. 이렇게 많은 해에 윤년이 몇 번이나 있습니까? 이를 위해서는 그레고리력의 도약 규칙을 이해해야 합니다.
우리는 그레고리력이 평년에는 365일, 윤년에는 366일인 것을 알고 있습니다. 도약을 정하는 방법은 4로 나누어지는 해에 대해 2월에 하루를 더하는 것이다. 그러나 100으로 나누어지는 해이면 윤년이 생기지 않는다. 따라서 1600년, 2000년, 2400년
과 같은 해는 모두 윤년이고, 1700년, 1800년, 1900년, 2100년은 평년입니다.
기원전 1년은 그레고리력에 따르면 윤년이기도 하다.
따라서, 모든 연도의 모든 윤년에 대해
기원전 1년 12월 31일(또는 서기 0)부터 Y년의 특정 날짜까지, 이는 다음과 같습니다.
[(Y-1)/4] - [(Y-1)/100] [(Y-1)/400],
[...] 정수 부분만 취함을 나타냅니다. . 첫 번째 항목은 4로 나누어지는 연수를 더해야 함을 나타내고, 두 번째 항목은 100으로 나누어지는 연수를 삭제해야 함을 나타내며, 세 번째 항목은 400으로 나누어지는 연수를 더해야 함을 나타냅니다. 추가되었습니다. Y를 1만큼 줄여야 하는 이유는
이러한 방식으로 특정 날짜의 요일을 계산하는 첫 번째 공식을 얻게 되기 때문입니다.
W = ( Y-1)*365 [ (Y-1)/4] - [(Y-1)/100] [(Y-1)/400] D. (1)
여기서 D는 올해 오늘의 누적 일수입니다. 계산된 W는 기원전 1년(또는 AD 0) 12월 31일과 오늘 사이의 일수입니다. W를 7로 나누면 나머지가 무엇이고, 오늘이 요일이다. 예를 들어,
2004년 5월 1일을 계산해 보겠습니다.
W = (2004-1)*365 [(2004-1)/4] - [(2004-1) / 100] [(2004-1)/400]
(31 29 31 30 1)
= 731702,
731702 / 7 = 104528… 6, 나머지는 6이며, 이는 오늘이 토요일임을 나타냅니다. 이는 사실과 일치합니다.
위의 (1)식은 매우 정확하지만, 계산된 숫자가 너무 커서 사용하기가 매우 불편합니다. 잘 생각해보면 W의 일수는 실제로는 7로 나눈 나머지를 구하는 데만 사용되는 셈이다. 이것은 우리에게 영감을 줍니다:
이 W 값을 단순화할 수 있습니까? 정수 이론의 관점에서 보면 더 작은 양의 정수를 찾을 수 있습니다. 그것과 일치하는 경우에도 정확한 주 수를 계산할 수 있습니다.
분명히 W가 이렇게 큰 이유는 공식의 첫 번째 항(Y-1)*365가 너무 크기 때문입니다. 실제로
(Y-1)*365 = (Y-1) * (364 1)
= (Y-1) * (7*52 1)
p >= 52 * (Y-1) * 7 (Y-1),
이 결과의 첫 번째 항은 7의 배수이고, 7로 나눈 나머지는 0이며, 따라서 (Y-1) *365를 7로 나눈 나머지는 실제로 Y-1을 7로 나눈 나머지와 같습니다. 이 관계는 다음과 같이 표현될 수 있습니다:
(Y-1)*365 Д Y-1 (mod 7).
그 중 χ는 정수론에서 합동을 나타내는 기호이다. Mod 7은 7을 모듈러스(즉, 약수)로 사용하면
의 양변이 된다는 뜻이다. ∨ 기호 숫자가 일치합니다. 따라서 (Y-1)을 (Y-1)*365로 대체하여
요일 계산에 대한 가장 유명하고 일반적인 공식을 얻을 수 있습니다.
W = (Y-1) [(Y-1)/4] - [(Y-1)/100] [(Y-1)/400] D. (2)
이 공식은 사용하기가 훨씬 쉽지만 누적 일수 D 계산도 번거롭기 때문에 가장 유용한 공식은 아닙니다
. 월과 날짜를 사용하여 직접 계산할 수 있나요? 대답도 그렇습니다.
각 달의 일수를 관찰하는 것이 좋습니다.
월: 1월, 2월, 3월, 4월, 5월, 6월, 7월, 8월, 9월, 10월 11월 12월
------------------- --------------------------------
일수: 31 28(29) 31 30 31 30 31 31 30 31 30 31
이 일수에서 28(=4*7)을 빼도 W를 7로 나눈 나머지 값에는 영향을 주지 않습니다. 이런 방식으로 우리는 또 다른 테이블을 얻습니다:
월: 1월, 2월, 3월, 4월, 5월, 6월, 7월, 8월, 9월, 10월, 11월, 12월
--- ----------------------------- -------- -------
남은 일수: 3 0(1) 3 2 3 2 3 3 2 3 2 3
평년 누적: 3 3 6 8 11 13 16 19 21 24 26 29
윤년 누적: 3 4 7 9 12 14 17 20 22 25 27 30
자세히 보면 1월과 2월을 제외하고 3월부터 7월까지 5개월의 남은 날은 3, 2, 3, 2, 8입니다.
5개월의 날; 1월부터 12월까지도 3, 2, 3, 2, 3이 있는데, 이는 정확히 반복입니다. 해당 누적일수 중 다음달 누적일수와 전월 누적일수에서 28일을 뺀 값이 바로 이 반복이다. 이 규칙이 있기 때문에 평년과 윤년의 누적 일수를 수학 공식으로 쉽게 표현할 수 있습니다.
╭ d (M=1인 경우)
D = { 31 d; (M=2일 때) (3)
╰ [ 13 * (M 1) / 5 ] - 7 (M-1) * 28 d i. (M≥3인 경우)
여기서 [...]는 여전히 정수 부분만 취함을 의미합니다. M과 d는 각각 계산하려는 월과 일입니다. 보통 연도는 0입니다. 및 윤년
i=1. M≥3이라는 표현을 설명해야 합니다. [13*(M 1)/5]-7은 위 두 번째 표의 연간 평균 누적 값에서 계산되며, (M -1)*28은 총 일수입니다. 계산하려는 달 이전의 모든 달에. 이것은 반올림 연산을 사용하여 3, 2, 3, 2, 3의 주기를 달성하는 매우 영리한 방법입니다. 예를 들어, 2004년 5월 1일의 경우 다음과 같습니다.
D = [ 13 * (5 1) / 5 ] - 7 (5-1) * 28 1 1
= 122,
이것이 바로 2004년 5월 1일의 누적일수이다.
또 다른 변경을 하고 1월과 2월을 전년도의 "13일"과 "14일"로 간주하면 여전히 이 공식을 준수할 뿐만 아니라
이 중에서 윤일은 이전 "연도"(1년은 14개월임)의 마지막 날이 되어 d의 일부가 되므로 윤년의 영향도 제거됩니다. 공식은 다음과 같이 단순화됩니다. /p>
D = [ 13 * (M 1) / 5 ] - 7 (M-1) * 28 d. (3≤M≤14) (4)
위의 요일 계산 공식은 다음과 같이 더 단순화될 수 있습니다:
W = (Y-1) [(Y -1 )/4] - [(Y-1)/100] [(Y-1)/400] [ 13 * (M 1) / 5 ] - 7
(M-1) * 28일 .
-7과 (M-1)*28 두 항목은 모두 7로 나누어지기 때문에 이 두 항목을 제거해도 W를 7로 나눈 나머지는 그대로 유지됩니다.
공식은 다음과 같습니다:
W = (Y-1) [(Y-1)/4] - [(Y-1)/100] [(Y-1)/400] [ 13 * ( M 1) / 5 ] d.
(5)
물론 1월과 2월을 전년도의 13번째와 14번째 달로 간주했기 때문에 1월과 2월의 일수를 계산할 때 주의할 점은 다음과 같습니다. 2월
M이 13 또는 14로 계산되는 것 외에도 Y 연도도 1을 뺍니다. 예를 들어, 2004년 1월 1일은 목요일입니다. 다음 공식을 사용하여 계산하세요.
W = (2003-1) [(2003-1)/4] - [(2003-1)/100] [(2003-1)/400] [13*(13 1)/5]
1
= 2002 500 - 20 5 36 1
= 2524;
2524 / 7 = 360…4. 이는 현실과 일치합니다.
수식 (5)는 이미 연, 월, 일로부터 요일을 계산하는 수식이지만 가장 간결하지는 않으며, 수식 처리에 개선의 여지가 있습니다. 연도
방법. 먼저 이 공식을 사용하여 각 세기의 첫 해 3월 1일의 주를 계산해 보겠습니다.
연도: 1 (401, 801,…, 2001) 101(501, 901) ,…,2101)
--------------- ----------------
주: 4 2
=== ================================================= ================
연도: 201(601, 1001,…, 2201) 301(701, 1101,…, 2301)
--------------------- --- -------
주: 0 5
매 4세기마다, 이번 주에 반복되었습니다.
301년 3월 1일의 주 번호(701, 1101,..., 2301)
를 -2로 간주하면(정수 이론의 나머지 정의에 따라 -2와 5를 7로 나눈 값) 나머지는 동일하므로 이 변환이 수행될 수 있습니다.) 그러면 이 반복 수열은 정확히 4, 2, 0, -2의 산술 수열입니다. 이를 바탕으로
각 세기의 첫 번째 해 3월 1일의 요일을 계산하는 다음 공식을 얻을 수 있습니다.
W = (4 - C mod 4 ) * 2 - 4. (6)
수식에서 C는 세기에서 1을 뺀 숫자이고, mod는 모듈로 연산, 즉 나머지를 구하는 것을 나타낸다. 예를 들어, 2001년 3월
1일, C=20인 경우:
W = (4 - 20 mod 4) * 2 - 4
= 8 - 4
= 4.
공식 (6)을 공식 (5)로 대체하면 변환 후 다음을 얻을 수 있습니다.
(Y-1) [(Y-1)/4] - [(Y - 1)/100] [(Y-1)/400] ‚ (4 - C mod 4) * 2 - 1
(mod 7). (7)
따라서 식 (5)에서 (Y-1) [(Y-1)/4] - [(Y-1)/100] [(Y-1)/400 ] 이 네 가지 항목은 각 세기의 첫 번째 연도의 날짜를 계산할 때 (4 - C mod 4) * 2 - 1로 대체될 수 있습니다. 이 공식은 다음과 같이 작성됩니다:
W = (4 - C mod 4) * 2 - 1 [13 * (M 1) / 5] d. (8)
각 세기의 첫 번째 연도의 날짜와 주를 계산하는 공식을 사용하면 해당 세기의 다른 연도의 날짜와 주를 계산하는 공식을 쉽게 얻을 수 있습니다.
왜냐하면 한 세기에 00으로 끝나는 해가 마지막 해이기 때문에 "100년에는 도약이 없고, 400년에는 도약"이라는 규칙을 고려할 필요가 없기 때문입니다. 네 번의 도약". "한 번의 윤년" 규칙. 식 (1)을 단순화하는 방법에 따라 식 (2)로, 식 (5)보다 식 (8)에서 더 간단한 계산을 쉽게 얻을 수 있습니다.
요일:
W = (4 - C mod 4) * 2 - 1 (y-1) [y/4] [13 * (M 1) / 5] d. (9)
수식에서 y는 연도의 마지막 두 자리입니다.
모듈로 연산이 4개의 산술 연산이 아니라는 점을 고려하면 (4 - C mod 4) * 2
를 4개의 산술 연산만 포함하는 표현식으로 다시 작성할 수 있습니다. 운영.
몫 q와 세기의 나머지 r에서 1C를 4로 나눈 값 사이에는 다음과 같은 관계가 있기 때문입니다.
4q r = C,
여기서 r은 C mod 4입니다. 따라서
r = C - 4q
= C - 4 * [C/4]가 있습니다. (10)
그러면
(4 - C mod 4) * 2 = (4 - C 4 * [C/4]) * 2
= 8 - 2C 8 * [C/4]
EMA [C/4] - 2C 1 (mod 7). (11)
방정식 (11)을 (9)에 대입하면 다음과 같은 결과를 얻습니다.
W = [C/4] - 2C y [y/4] [13 * (M 1 ) / 5] d - 1. (12)
이 공식은 세기, 연도의 마지막 두 자리, 월, 일에서 1을 뺀 다음 7로 나누어 W를 계산할 수 있습니다. 나머지는 무엇입니까?
p>
이 날은 요일입니다. 변경해야 할 유일한 변경 사항은 1월과 2월을 전년도의 13번째와 14번째 달로 처리하는 것입니다.
C와 y는 다음과 같습니다. 둘 다 전년도 연도에 따라 평가됩니다. 따라서 일반적으로 특정 날짜의 요일을 계산하는 가장 좋은 공식으로 간주됩니다. 이 공식은 독일의 수학자 Christian Zeller(1822-
1899)가 1886년에 처음 도출했기 때문에 일반적으로 Zeller의 공식으로 알려져 있습니다. 구두 계산을 용이하게 하기 위해
공식에서 [13 * (M 1) / 5]를 [26 * (M 1) / 10]으로 쓰는 경우가 많습니다.
이제 2004년 5월 1일의 주를 계산해 보겠습니다. 분명히 C=20, y=4, M=5, d=1을 Zeiler의 공식으로 대체하면
W = [20/4] - 40 4 1 [13 * (5 1) / 5] 1 - 1
= -15.
음수의 나머지는 일반적인 나머지 개념에 따라 계산할 수 없고 정수 이론의 나머지 정의에 따라서만 계산할 수 있습니다. 계산을 용이하게 하기 위해 7의 정수 배수를 추가하여 양수로 만들 수 있습니다. 예를 들어 70을 더하면 55가 됩니다.
다시 7로 나누면 나머지가 6이 되어 오늘이 토요일임을 알 수 있습니다. 이는 현실과 일치하며 공식 (2)에 의해 계산된 결과와도 일치합니다
.
마지막으로 위의 수식은 모두 그레고리력의 도약규칙을 기반으로 한다는 점에 유의해야 합니다.
Zeiler는 율리우스력의 경우 해당 공식도 도출했습니다:
W = 5 - C y [y/4] [13 * (M 1) / 5] d - 1. (13)
이렇게 해서 우리는 달력을 참고하지 않고도 특정 요일의 요일을 계산하는 문제를 마침내 완전히 해결했습니다.
(위 내용은 인터넷에서 퍼온 내용입니다)