À propos du 02 février 2020 * Ceci est un article Python.

introduction

Un jour en 2019

Je suis tombé sur un merveilleux article.

[À propos du 5 avril 2013 * Ceci est un article Ruby. | BLOG TECHSCORE](https://www.techscore.com/blog/2013/01/04/2013%E5%B9%B44%E6%9C%885%E6%97%A5%E3%81%AB%E3 % 81% A4% E3% 81% 84% E3% 81% A6-% E2% 80% BBruby% E3% 81% AE% E8% A8% 98% E4% BA% 8B% E3% 81% A7% E3% 81% 99% E3% 80% 82 /)

Ce qui suit est un résumé du contenu.

Je l'ai lu personnellement avec beaucoup d'intérêt et je l'ai apprécié. (Veuillez jeter un oeil!) Il est bon de pouvoir rapidement étudier diverses choses en utilisant la programmation. Je me suis dit: "C'est une excellente coupe l'année prochaine (2020), 2 et 0 seront déjà utilisés deux fois par an seulement." À ce moment-là, j'ai remarqué quelque chose.

Qu'est-ce que le 02 février 2020?

"Est-ce que ... le 02 février 2020 utilise seulement deux nombres, 0 et 2 ...?"

Ce jour est ... ce que ... il se compose uniquement de "0" et "2"! !!

D'un point de vue différent du 5 avril 2013, cette journée est aussi une journée rare ...? J'ai pensé. Alors, examinons la date qui se compose de deux nombres ou moins comme celui-ci. J'ai utilisé Ruby dans l'article original, mais cette fois, j'utiliserai Python. L'environnement d'exécution est Google Colaboratory [^ Google Colaboratory].

Enquête

Contrainte

Cette fois, l'année est composée de 4 chiffres et le mois et le jour sont de 2 chiffres. Par conséquent, remplissez les chiffres manquants avec des zéros (0). (Exemple: "1 an" -> "0001", "janvier" -> "janvier") De plus, la date cible est du 1er janvier 0001 au 31 décembre 9999.

programme

Sondage de la date applicable


import datetime
from collections import Counter

#constant
START_DAY = datetime.datetime(1, 1, 1)
END_DAY = datetime.datetime(9999, 12, 31)
BORDER = 2

#Stocker la date cible dans le dictionnaire (01 janvier 0001-31 décembre 9999)
target_days = {}
today = START_DAY
while True:
    target_days[today] = today
    if (today == END_DAY):
        break;
    today = today + datetime.timedelta(days=1)

#Jours cibles
print(len(days))

#Stocker la date correspondant à la condition qu'elle soit composée de deux nombres ou moins dans le dictionnaire et
ans_days = {}
for today in target_days:
    if (len(Counter(today.strftime("%Y%m%d"))) <= BORDER):
        ans_days[today] = today

#Jours applicables
print (len(ans_days))

#Taux d'applicabilité
print (len(ans_days)/len(target_days))

résultat

Les jours cibles cette fois-ci étaient «3652059» jours du 1er janvier 0001 au 31 décembre 9999. Parmi eux, la date composée de deux nombres ou moins tels que «02 février 2020» était le jour «928». Sa probabilité pour l'ensemble était de «0,0002541032332719707», soit une fois tous les 3935 jours. N'est-ce pas assez rare? (Bien qu'il y ait des inégalités considérables, le rythme est de une fois tous les 10 ans.) En passant, les dates suivantes étaient applicables. (Omis, extrait.)

Calcul de la date applicable


for today in ans_days:
    print(ans_days[today].strftime("%Y/%m/%d"))

Résultat d'exécution


01 janvier 0001
10 janvier 0001
11 janvier 0001
(Omis)
2 février 2002
20 février 2002
22 février 2002
02 février 2020
20 février 2020
22 février 2020
2 février 2022
20 février 2022
22 février 2022
11 novembre 2111
12 novembre 2111
21 novembre 2111
(Omis)
9 septembre 9999
11 novembre 9999
19 novembre 9999

La dernière fois, c'était le «22 février 2002», il y a 18 ans. Il semble qu'il y en aura trois en 2020, dont le `` 02 février 2020 '', et il semble qu'il y en aura trois en 2022. Le prochain est 2111 ...

en conclusion

Dans cet article, nous avons étudié les dates qui ne comprenaient que deux nombres, comme le 02 février 2020. Il y avait des jours proches du 20 février 2020 et du 22 février 2020, mais en termes de probabilité, c'était rare, environ une fois tous les 10 ans.

Alors (?), Merci pour 2019. : arc: J'ai hâte de travailler avec vous en 2020. : arc:

(Ajouté le 2 janvier 2019) Il a été publié dans l'article suivant! Je vous remercie!

Recommended Posts

À propos du 02 février 2020 * Ceci est un article Python.
Cette chaîne est-elle une fraction?
Est-ce un commerce de système?
La liste Python n'est pas une liste
Un mémorandum sur le simulacre de Python
Ceci est une question webiopi
Une note sur [python] __debug__
i! i! ← Ceci est une formule
[Python] Qu'est-ce qu'une fonction zip?
[Python] Qu'est-ce qu'une instruction with?
[Python] Qu'est-ce que @? (À propos des décorateurs)
Une note sur mock (bibliothèque fictive Python)
Un programmeur Java a étudié Python. (À propos du type)
Hash en Perl est un dictionnaire en Python
Qu'est-ce qu'un chien? Volume d'installation Python
[python] [meta] Le type de python est-il un type?
Une histoire sur Python pop and append
Pourquoi le découpage Python est représenté par un deux-points (:)
À propos des tranches Python
À propos de la notation d'inclusion de python
Python est facile
Un programmeur Java a étudié Python. (À propos des fonctions (méthodes))
À propos de Python tqdm.
Est-ce que sys.settrace, une fonctionnalité géniale de python, est un autre langage?
Un programmeur Java a étudié Python. (À propos des décorateurs)
[Python] Les informations de l'article de Qiita sont transférées dans mongoDB
À propos de python, classe
À propos de la différence entre "==" et "is" en python
Un mémo que j'ai écrit un tri de fusion en Python
À propos de l'héritage Python
Écrire une note sur la version python de python virtualenv
À propos de python, range ()
Ceci est le seul examen de base de Python ~ 1 ~
Analyse de données en Python: une note sur line_profiler
Ceci est le seul examen de base de Python ~ 2 ~
Une histoire sur l'exécution de Python sur PHP sur Heroku
Pensez à créer un environnement Python 3 dans un environnement Mac
Qu'est-ce que python
Un mémorandum sur la bibliothèque de wrapper Python tesseract
Lancez le shell pendant que le script Python est en cours d'exécution
Python est une instance
Ceci est le seul examen de base de Python ~ 3 ~
À propos de la référence Python
Juger s'il s'agit d'un nombre premier [Python]
À propos des décorateurs Python
Une histoire sur la modification de Python et l'ajout de fonctions
[Python] À propos du multi-processus
Dites-moi ce qu'est une cartographie équiangulaire, Python!
Qu'est-ce que Python
J'ai réfléchi à la raison pour laquelle Python self est nécessaire avec le sentiment d'un interpréteur Python
Vérifiez si la chaîne est un nombre en python
Ceci est un exemple d'application de fonction dans dataframe.
Écrire sur la création d'un environnement Python pour l'écriture de Qiita Qiita
Notez qu'écrire comme ça avec ruby c'est écrire comme ça avec python
Un débutant en Python dit qu'il est bon de s'en souvenir
L'histoire de la création d'une partition de type Hanon avec Python
Une histoire d'essayer un monorepo (Golang +) Python avec Bazel