Über den 02. Februar 2020 * Dies ist ein Python-Artikel.

Einführung

Ein Tag im Jahr 2019

Ich bin auf einen wunderbaren Artikel gestoßen.

[Ungefähr am 5. April 2013 * Dies ist ein Ruby-Artikel. | TECHSCORE BLOG](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 /)

Das Folgende ist eine Zusammenfassung des Inhalts.

Ich persönlich habe es mit großem Interesse gelesen und es genossen. (Bitte werfen Sie einen Blick darauf!) Es ist gut, verschiedene Dinge mithilfe der Programmierung schnell untersuchen zu können. Ich dachte: "Es ist ein großartiger Schnitt im nächsten Jahr (2020), 2 und 0 werden bereits zweimal pro Jahr alleine verwendet." Zu dieser Zeit bemerkte ich etwas.

Was ist der 02. Februar 2020?

"Werden ... am 2. Februar 2020 nur zwei Zahlen verwendet, 0 und 2 ...?"

Dieser Tag ist ... was ... er besteht nur aus "0" und "2"! !!

Aus einer anderen Sicht ab dem 5. April 2013 ist dieser Tag auch ein seltener Tag ...? Ich dachte. Untersuchen wir also das Datum, das aus zwei oder weniger Zahlen wie dieser besteht. Ich habe Ruby im Originalartikel verwendet, aber dieses Mal werde ich Python verwenden. Die Ausführungsumgebung ist Google Colaboratory [^ Google Colaboratory].

Umfrage

Zwang

Dieses Mal ist das Jahr 4-stellig und der Monat und der Tag sind 2-stellig. Füllen Sie daher die fehlenden Ziffern mit Nullen (0) aus. (Beispiel: "1 Jahr" -> "0001", "Januar" -> "Januar") Das Zieldatum liegt vom 01. Januar 0001 bis zum 31. Dezember 9999.

Programm

Übersicht über das anwendbare Datum


import datetime
from collections import Counter

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

#Speichern Sie das Zieldatum im Wörterbuch (01. Januar 0001 - 31. Dezember 9999).
target_days = {}
today = START_DAY
while True:
    target_days[today] = today
    if (today == END_DAY):
        break;
    today = today + datetime.timedelta(days=1)

#Zieltage
print(len(days))

#Speichern Sie das Datum, das der Bedingung entspricht, dass es aus zwei oder weniger Zahlen besteht, im Wörterbuch ans
ans_days = {}
for today in target_days:
    if (len(Counter(today.strftime("%Y%m%d"))) <= BORDER):
        ans_days[today] = today

#Anwendbare Tage
print (len(ans_days))

#Anwendbarkeitsrate
print (len(ans_days)/len(target_days))

Ergebnis

Die Zieltage dieses Mal waren "3652059" Tage vom 01. Januar 0001 bis zum 31. Dezember 9999. Unter diesen war das Datum, das aus zwei oder weniger Zahlen wie "02. Februar 2020" bestand, "928" Tag. Die Wahrscheinlichkeit für das Ganze betrug "0,0002541032332719707" oder einmal alle 3935 Tage. Ist es nicht ziemlich selten? (Obwohl es erhebliche Ungleichmäßigkeiten gibt, ist das Tempo alle 10 Jahre.) Übrigens galten die folgenden Daten. (Ausgelassen, Auszug.)

Berechnung des anwendbaren Datums


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

Ausführungsergebnis


01. Januar 0001
10. Januar 0001
11. Januar 0001
(Weggelassen)
02. Februar 2002
20. Februar 2002
22. Februar 2002
02. Februar 2020
20. Februar 2020
22. Februar 2020
02. Februar 2022
20. Februar 2022
22. Februar 2022
11. November 2111
12. November 2111
21. November 2111
(Weggelassen)
09. September 9999
11. November 9999
19. November 9999

Das letzte Mal war der 22. Februar 2002 vor 18 Jahren. Es scheint, dass es im Jahr 2020 drei Mal geben wird, einschließlich "02. Februar 2020", und es scheint, dass es im Jahr 2022 drei Mal geben wird. Als nächstes kommt 2111 ... es liegt ganz vorne ...

abschließend

In diesem Artikel haben wir Daten untersucht, die nur aus zwei Zahlen bestanden, z. B. den 2. Februar 2020. Es gab Tage in der Nähe des 20. Februar 2020 und des 22. Februar 2020, aber in Bezug auf die Wahrscheinlichkeit war dies selten, etwa alle 10 Jahre.

Also (?), Danke für 2019. : Bogen: Ich freue mich darauf, 2020 mit Ihnen zusammenzuarbeiten. : Bogen:

(Hinzugefügt am 2. Januar 2019) Es wurde im folgenden Artikel veröffentlicht! Vielen Dank!

Recommended Posts

Über den 02. Februar 2020 * Dies ist ein Python-Artikel.
Ist diese Zeichenfolge ein Bruchteil?
Ist das ein Systemhandel?
Ein Memorandum über den Python-Mock
Dies ist eine Webiopi-Frage
Ein Hinweis zu [Python] __debug__
i! i! ← Dies ist eine Formel
[Python] Was ist eine Zip-Funktion?
[Python] Was ist eine with-Anweisung?
[Python] Was ist @? (Über Dekorateure)
Ein Hinweis zu Mock (Python-Mock-Bibliothek)
Ein Java-Programmierer studierte Python. (Über Typ)
Hash in Perl ist ein Wörterbuch in Python
Was ist ein Hund? Python-Installationsvolumen
[Python] [Meta] Ist der Python-Typ ein Typ?
Eine Geschichte über Python Pop und Append
Warum Python Slicing durch einen Doppelpunkt (:) dargestellt wird
Über Python-Slices
Über die Einschlussnotation von Python
Python ist einfach
Ein Java-Programmierer studierte Python. (Über Funktionen (Methoden))
Über Python tqdm.
Ist sys.settrace, ein geniales Merkmal von Python, eine andere Sprache?
Ein Java-Programmierer studierte Python. (Über Dekorateure)
Über Python, Klasse
Über den Unterschied zwischen "==" und "is" in Python
Ein Memo, das ich in Python zusammengeführt habe
Informationen zur Python-Vererbung
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
Über Python, range ()
Dies ist die einzige grundlegende Überprüfung von Python ~ 1 ~
Datenanalyse in Python: Ein Hinweis zu line_profiler
Dies ist die einzige grundlegende Überprüfung von Python ~ 2 ~
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Was ist Python?
Ein Memorandum über die Python-Tesseract-Wrapper-Bibliothek
Starten Sie die Shell, während das Python-Skript ausgeführt wird
Python ist eine Instanz
Dies ist die einzige grundlegende Überprüfung von Python ~ 3 ~
Informationen zur Python-Referenz
Beurteilen Sie, ob es sich um eine Primzahl handelt [Python]
Über Python-Dekorateure
Eine Geschichte über das Ändern von Python und das Hinzufügen von Funktionen
[Python] Über Multi-Prozess
Sag mir, was eine gleichwinklige Abbildung ist, Python!
Was ist Python?
Ich dachte darüber nach, warum Python selbst mit dem Gefühl eines Python-Interpreters notwendig ist
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Dies ist ein Beispiel für eine Funktionsanwendung im Datenrahmen.
Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita
Beachten Sie, dass das Schreiben mit Ruby so ist wie das Schreiben mit Python
Python-Anfänger sagen, dass es gut ist, sich an so viel zu erinnern
Die Geschichte, mit Python eine Hanon-ähnliche Partitur zu machen
Eine Geschichte über das Ausprobieren eines (Golang +) Python-Monorepo mit Bazel