2002 년에 열심히 정리해 놓은 문서들을 찾아 보다가 발견했습니다. 가끔 TV 프로그램 같은곳에서 몇년 몇월이 무슨 요일이냐? 라고 물으면 곧바로 대답을 하는 사람을 보고 엄청난 기억력이나 초능력을 가진것으로 취부하는것을 본적이 있는데요... 그게 그렇게 엄청난 것은 아닙니다. 암산만 조금 할 수 있다면 여러분도 가능합니다.
가령 오늘이 2010년 7월23일 금요일입니다. 그러면 2011년 7월 23일은 무슨 요일일까요?
답은 오늘의 요일 + 1요일 입니다. 즉, 토요일 입니다.
왜일까요? 아래의 글을 읽어보시면 아시게 될겁니다.
로보밥
0000년 00월 00일은 무슨 요일인가? 에 대한 해답
@200205261900
궂이 컴퓨터가 없더라도, 모든 해의 요일을 맞출 수 있다. 그다지 어렵지 않은 산수만 할 줄안다면, 암산으로 말이다.
원리: 요일은 7 State만을 갖는 변수이다. 즉, 어느 순간 7개중 한 상태일 뿐이다. 단 7개. 때문에 쉬울 수밖에 없다.
찍어도 1/7 확률아닌가??? ^^;;
규칙1. 현재보다 x 일 이 더 지난 후의 요일은 x mod 7 의 값만큼 다음(현재요일기준)요일이다.
예1. 오늘은 일요일이다. 23일 후는 무슨 요일인가? 풀이: 23 Mod 7은 = 2 이다. 근데 오늘은 일요일이므로 2만큼 다음요일은 화요일이된다. (이후 +2요일이라고 약칭한다)
어떤날의요일 = 오늘의요일 + x Mod 7 (x는 차이 일수)
참고사항: MOD의 의미
x Mod 7이란 x를 7로 나눈 후 나머지 값을 말합니다. 나머지(Modulus) 연산자라고 불리며, 프로그래밍 언어에서는 보통 % 라고 표시됩니다. 윈도우 전자 계산기를 공학모드로 설정하면 Mod 버튼이 보입니다. 365 mod 7 이 몇인지 한번 계산해보시기바랍니다. 답은 1입니다.
규칙2. 1년 후 오늘의 요일은 오늘의 요일 +1요일이 된다. ( 단, 윤년인 경우, +2 요일 )
우선 상식을 우선 배워보자.
상식1. 1년은 몇 일인가?
정답은 365.xxx일이다. 일년의 기준은 지구가 정확히 태양을 한바퀴 걸리는데 얼마나 걸리나를 정의하는데, 정확히는 365일이 넘는다. 그래서 문제는 해가 지날수록 시간이 조금씩 틀려진다는 것. 때문에 4년에 한번씩 (2월달에)하루를 추가하여 오류를 수정한다. 즉, 366일을 만드는 것이다(이게 윤년이다.) 평년엔 2월이 28일까지 있는데 윤년에는 29일까지 있다. 재밌는 것은 윤년의 2월29일이 생일인 사람은 4년에 한번 생일이 돌아온다 ^^; 주변에 2월29일생이 있다면 생일 잘 챙겨주시길~. (자세한 윤년의 정의는 아래의 참고자료를 보세용)
결론: 1년은 몇 일인가?
평년은 365일 (윤년이 아닌 모든해)
윤년은 366일 ( ,,, 1984,1988,1992,1996,2000,2004,2008 ,,, )
때문에 규칙2가 성립된다. 규칙1에 의해서 규칙2를 증명해보자.
평년인 365일의 Mod 7은 1이다. 그러므로 동일한 월/일의 다음해는 +1요일
윤년의 366일의 Mod 7운 2이다. 그러므로 동일한 월/일의 다음해는 +2요일이된다.
상식2. 몇월이 몇일까지 있는지 어떻게 정해지나?
결론을 말하자면, 1,3,5,7,8,10,12월은 무조건 31일까지있다.
그리고 2월은 평년에는 28일, 윤년엔 29일까지있다.
나머지 4,6,9,11월은 30일이다.
결국 2월을 제외하고는 매 해마다 동일하다.
규칙3. 다음월의 요일은 몇월인가에 따라 +요일치가 달라진다. 왜워두면 바로 적용가능.
오늘은 5월26일이다. 그러면 다음달의 26일 무슨요일인가?
규칙1에 의해서 계산을 해도도지만 더 단순한 규칙을 찾아보자.
월의 일은 31일 30일 29일 28일 네가지가 있다. 때문에 미리 계산해둔 값을 기억해서 쓰면 빠르다.
31 Mod 7 = 3 (그러므로 +3요일)
30 Mod 7 = 2 (+2요일)
29 Mod 7 = 1 (그러므로 윤년의 3월의 요일은 2월의 요일 +1 )
28 Mod 7 = 0 (그러므로 윤년의 2월의 요일은 3월의 요일과 동일)
결론: 1,3,5,7,8,10,12월은 다음달 같은일에 +3요일이 된다.
4,6,9,11월은 다음달 같은일에 +2요일이 된다.
2월은 윤년일 땐 다음달에 같은 요일이 되고, 평년에는 +1요일이 된다.
그러면 다음달이 아닌 한달 전은 어떨까?
이때는 저번 달을 기준으로 잡고 + 가 -로 변하게된다.
5월 26일(일)이라면 저번 달의 26일은 4월이 -2요일이 되므로 금요일이 된다.
참고사항: 윤년의 정의
[閏年, leap year]
카테고리: 과학 > 순수과학 > 지구과학 > 천문학 > 역법 및 측시법
개요 : 태양력법에서 2월을 29일로 둔 해.
본문 출처 : 두산세계대백과 EnCyber
원래 2월은 평년이 28일까지 있는 것이지만, 만일 윤년이 없이 언제나 평년이라면 1년의 길이가 365일로 되어 실제보다 0.2422일 짧아지므로 점차 역일(曆日)과 계절이 달라진다. 그러므로 율리우스력에서는 4년마다 2월을 29일로 함으로써 4년간의 연평균 일수를 365.25일로 정하였다. 이 값은 실제보다 1년에 0.0078일이 길다.
그후의 그레고리력에서는 다음과 같은 치윤법(置閏法)을 정하고 시행하였다. 즉, ① 서력 기원 연수가 4로 나누어 떨어지는 해는 우선 윤년으로 하고, ② 그 중에서 100으로 나누어 떨어지는 해는 평년으로 하며, ③ 다만 400으로 나누어 떨어지는 해는 다시 윤년으로 정하였다. 이로써 1년의 평균길이를 365.2425일로 정하여 역에 썼으므로 실제의 1년보다 0.0003일이 길다.
이 그레고리오력에서는 400년간에 97년이 윤년이 된다. 한국에서는 1896년(건양 1)부터 태양력이 쓰였는데 이 역법은 그레고리오력이다. 그레고리오력이 현행의 태양력이다. 율리우스력은 한국에는 들어오지 않았다. 고레고리오력의 치윤법에 의하여 1900년은 평년이었고 2000년은 윤년이 된다.
자, 이제 훈련만 잘하면 주위 분들에게 엄청난 계산력? 암산력의 소유자로 칭송 받게 될 지도 모릅니다.
한번 머리 훈련좀 해보시겠습니까? !!!
'보안과 알고리즘(Security & Algorithm)' 카테고리의 다른 글
SEA(Simple Encryption Algorithm - 센서 노드간의 무선 보안 통신을 위한 TinyOS nesC 구현예 (0) | 2010.07.22 |
---|