2020년 02월 02일에 대해서 ※Python의 기사입니다.
소개
2019년 모일
한 멋진 기사를 만났습니다.
2013년 4월 5일에 대해 ※Ruby의 기사입니다. | TECHSCORE BLOG
다음은 내용을 요약한 것입니다.
개인적으로 흥미롭게 읽어 주셔서 즐겁게 해 주셨습니다. (꼭, 여러분도 봐 주세요!) 프로그래밍을 사용하는 것으로 바삭바삭한 여러가지 것을 조사할 수 있는 것이 좋네요-. 「대단한 절구구나~내년(2020년)은 해만이라도 벌써 2도 0도 2회씩 사용되고 있는구나~」라고 생각하고 있었습니다. 그럴 때는 있는 것을 깨달았습니다.
2020년 02월 02일이란?
「아레…
이 날은……무려……“0”과 “2”만으로 구성되어 있습니다! !
2013년 4월 5일과는 다른 관점에서, 이 날도 레어인 날인 것은… 라고 생각했습니다. 그래서 이러한 2개 이하의 숫자로 구성된 연월일을 살펴보겠습니다. 전 자료의 기사에서는 Ruby를 사용하고 있지만, 이번에는 Python을 사용합니다. 실행 환경은 Google Colaboratory 1입니다.
조사
제약
이번에는 연을 4자리, 월과 일을 2자리로 합니다. 그러므로 숫자가 부족한 연월일은 0(0)으로 채워집니다. (예: 「1년」→「0001년」, 「1월」→「01월」) 또, 대상으로 하는 연월일을 0001년 01월 01일~9999년 12월 31일로 합니다.
프로그램
해당 연월일 조사import datetime
from collections import Counter
# 定数
START_DAY = datetime.datetime(1, 1, 1)
END_DAY = datetime.datetime(9999, 12, 31)
BORDER = 2
# 対象年月日を辞書に格納(0001年01月01日~9999年12月31日)
target_days = {}
today = START_DAY
while True:
target_days[today] = today
if (today == END_DAY):
break;
today = today + datetime.timedelta(days=1)
# 対象日数
print(len(days))
# 2つ以下の数字によって構成されるという条件に該当する年月日を辞書ansに格納
ans_days = {}
for today in target_days:
if (len(Counter(today.strftime("%Y%m%d"))) <= BORDER):
ans_days[today] = today
# 該当日数
print (len(ans_days))
# 該当率
print (len(ans_days)/len(target_days))
결과
이번 대상일수는 0001년 01월 01일~9999년 12월 31일의 3652059
일간이었습니다. 그 중 2020年02月02日
와 같이 2개 이하의 숫자로 구성된 연월일은 928
일이었습니다. 전체에 대한 그 확률은 0.0002541032332719707
, 즉 3935일에 1회였습니다. 좀처럼 희귀하지 않습니까? (상당히 불균일은 있습니다만, 10년에 1번 페이스군요.) 덧붙여서, 이하의 연월일이 해당했습니다. (생략, 발췌.)
해당 연월일 계산for today in ans_days:
print(ans_days[today].strftime("%Y/%m/%d"))
실행 결과0001年01月01日
0001年01月10日
0001年01月11日
(略)
2002年02月02日
2002年02月20日
2002年02月22日
2020年02月02日
2020年02月20日
2020年02月22日
2022年02月02日
2022年02月20日
2022年02月22日
2111年11月11日
2111年11月12日
2111年11月21日
(略)
9999年09月09日
9999年11月11日
9999年11月19日
전회는 2002年02月22日
, 18년전이군요. 2020년에는 2020年02月02日
를 포함해, 3회 있는 것 같고, 2022년에도 3회 있는 것 같네요. 그 다음은 2111년…
결론
본 기사에서는 2020년 02월 02일과 같이 2개의 숫자만으로 구성된 연월일을 조사했습니다. 2020년 02월 20일이나 2020년 02월 22일과 가까운 날이 있었습니다만, 확률로부터 말하면 10년에 1번 정도라고, 레어였군요.
그래서 (?) 2019 년 감사합니다.
2020년도 잘 부탁드립니다.
(2019년 1월 2일 추가)
이하의 기사에 게재해 주셨습니다! 감사합니다!
import datetime
from collections import Counter
# 定数
START_DAY = datetime.datetime(1, 1, 1)
END_DAY = datetime.datetime(9999, 12, 31)
BORDER = 2
# 対象年月日を辞書に格納(0001年01月01日~9999年12月31日)
target_days = {}
today = START_DAY
while True:
target_days[today] = today
if (today == END_DAY):
break;
today = today + datetime.timedelta(days=1)
# 対象日数
print(len(days))
# 2つ以下の数字によって構成されるという条件に該当する年月日を辞書ansに格納
ans_days = {}
for today in target_days:
if (len(Counter(today.strftime("%Y%m%d"))) <= BORDER):
ans_days[today] = today
# 該当日数
print (len(ans_days))
# 該当率
print (len(ans_days)/len(target_days))
for today in ans_days:
print(ans_days[today].strftime("%Y/%m/%d"))
0001年01月01日
0001年01月10日
0001年01月11日
(略)
2002年02月02日
2002年02月20日
2002年02月22日
2020年02月02日
2020年02月20日
2020年02月22日
2022年02月02日
2022年02月20日
2022年02月22日
2111年11月11日
2111年11月12日
2111年11月21日
(略)
9999年09月09日
9999年11月11日
9999年11月19日
본 기사에서는 2020년 02월 02일과 같이 2개의 숫자만으로 구성된 연월일을 조사했습니다. 2020년 02월 20일이나 2020년 02월 22일과 가까운 날이 있었습니다만, 확률로부터 말하면 10년에 1번 정도라고, 레어였군요.
그래서 (?) 2019 년 감사합니다.
2020년도 잘 부탁드립니다.
(2019년 1월 2일 추가)
이하의 기사에 게재해 주셨습니다! 감사합니다!
htps : // 코 b. 레세아 rch. 오, ぇ. 코 m / 노보보 ks / ぇ l 코메. 아니 pyb? hl = 그럼 ↩
Reference
이 문제에 관하여(2020년 02월 02일에 대해서 ※Python의 기사입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/daikikatsuragawa/items/fb8cc0b55582eb0203ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)