Inhaltsverzeichnis
Beispiel
Sakamoto Tomohiko-Algorithmus
Fall 1 Schaltjahre ignorieren
Fall 2 Schaltjahr
Ausgabe
Komplexität
Heim Backend-Entwicklung C++ Tomohiko Sakamotos Algorithmus – Ermitteln des Wochentags

Tomohiko Sakamotos Algorithmus – Ermitteln des Wochentags

Sep 02, 2023 pm 07:09 PM
算法 寻找 Woche

Tomohiko Sakamotos Algorithmus – Ermitteln des Wochentags

In diesem Artikel besprechen wir, was der Tomohiko-Sakamoto-Algorithmus ist und wie man ihn verwendet, um zu ermitteln, welcher Wochentag ein bestimmtes Datum ist. Es gibt mehrere Algorithmen, um den Wochentag zu ermitteln, aber dieser Algorithmus ist der leistungsstärkste. Dieser Algorithmus findet den Tag des Monats, in dem dieses Datum liegt, in der kleinstmöglichen Zeit und mit der geringsten räumlichen Komplexität.

Problemstellung – Wir erhalten ein Datum basierend auf dem georgischen Kalender und unsere Aufgabe besteht darin, mithilfe des Algorithmus von Tomohiko Sakamoto herauszufinden, welcher Wochentag das angegebene Datum ist.

Beispiel

Geben Sie ein – Datum = 30, Monat = 04, Jahr = 2020

Ausgabe – Das angegebene Datum ist Montag

Geben Sie ein – Datum = 15, Monat = 03, Jahr = 2012

Ausgabe – Das angegebene Datum ist Donnerstag

Eingabe – Datum = 24, Monat = 12, Jahr = 2456

Ausgabe – Das angegebene Datum ist Sonntag

Sakamoto Tomohiko-Algorithmus

Lassen Sie uns nun die Intuition hinter Tomohiko Sakamotos Algorithmus besprechen.

Wie wir alle wissen, fällt der 1. Januar n. Chr. nach dem georgischen Kalender auf einen Montag.

Fall 1 Schaltjahre ignorieren

Wir besprechen zunächst den Fall, dass alle Schaltjahre ignoriert werden, d. h. ein Jahr hat 365 Tage.

Da der Januar 31 Tage und eine Woche 7 Tage hat, können wir sagen, dass der Januar 7*4 + 3 Tage hat, was bedeutet, dass der erste Tag im Februar immer 3 Tage nach dem ersten Tag im Januar liegt. p>

Da der Februar 28 Tage hat (mit Ausnahme von Schaltjahren), was selbst ein Vielfaches von 7 ist, können wir sagen, dass der 1. März am selben Tag wie der 1. Februar sein wird, was bedeutet, dass der 1. März einige Tage lang auch der 3. Januar sein wird nach dem Datum.

Für April hat der März 31 Tage, also 7*4 +3, was bedeutet, dass er 3 Tage nach dem 1. März stattfinden wird. Daher können wir sagen, dass der 1. April 6 Tage nach dem 1. Januar stattfinden wird.

Wir werden nun ein Array erstellen, in dem arr[i] die Anzahl der zusätzlichen Tage seit Beginn des Monats i relativ zum 1. Januar darstellt.

Wir haben arr[] = { 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }.

Fall 2 Schaltjahr

Lassen Sie uns nun die Situation mit dem Schaltjahr besprechen.

Alle vier Jahre wird ein Tag zu unseren Berechnungen hinzugefügt, aber nicht alle hundert Jahre. Wir müssen diese zusätzlichen Tage berücksichtigen. Dafür verwenden wir die Formel -

Jahr/4 (Alle 4 Jahre)

– Jahr / 100 (für alle 100 Jahre ist das ein Vielfaches von 4, aber immer noch kein Schaltjahr, wir entfernen es aus dem Schaltjahr)

+ Jahr / 400 (alle 400 Jahre ist es ein Vielfaches von 100, aber immer noch ein wiederkehrendes Jahr)

Diese Formel gibt uns die genaue Anzahl der Schaltjahre. Es gibt jedoch eine Ausnahme.

Jetzt wissen wir, dass der 29. Februar als Schalttag gilt und nicht der 0. Januar.

Das bedeutet, dass wir die ersten beiden Monate des Jahres nicht in die Berechnung einbeziehen müssen, da Schalttage keinen Einfluss darauf haben. Wenn es also Januar oder Februar ist, subtrahieren wir zum Ausgleich 1 vom Jahr. Daher sollte in diesen Monaten der Wert von Jahr/4 auf dem Vorjahr und nicht auf dem aktuellen Jahr basieren.

Um das Schaltjahrproblem zu lösen, können wir für jeden Monat nach Februar 1 vom arr[]-Wert subtrahieren, um die Lücken zu füllen. Dies löst das Schaltjahrproblem. Wir müssen die folgenden Änderungen am Algorithmus vornehmen, damit er sowohl in Schaltjahren als auch in flachen Jahren funktioniert.

arr[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }

Wenn der aktuelle Monat Januar oder Februar ist, müssen wir 1 vom Jahr subtrahieren.

Wir müssen das Jahresinkrement innerhalb des Moduls auf Jahr + Jahr/4 – Jahr/100 + Jahr/400 anstelle von Jahr ändern. Diese Änderung ist notwendig, um den zusätzlichen Tag in einem Schaltjahr zu berücksichtigen und die Berechnungen entsprechend anzupassen.

Beispiel

Der Code für diese Methode lautet:

#include <bits/stdc++.h>
using namespace std;
// code to find out the day number of the given date
int Weekday(int year, int month, int day) {
   int arr[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
	
   if ( month < 3 )
      year -= 1;
   return ( ( year + year / 4 - year / 100 + year / 400 + arr[month - 1] + day) % 7 );
}

int main(void) {
   int day = 9, month = 9, year = 2020;
   int d = Weekday(year, month, day);
   string days[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
   cout<< " The given date is on "; 
   cout << days[d];
   return 0;
}
Nach dem Login kopieren

Ausgabe

The given date is on Wednesday
Nach dem Login kopieren

Komplexität

Zeitkomplexität – Die Zeitkomplexität dieser Methode beträgt O(1)

Raumkomplexität – Die Raumkomplexität dieses Ansatzes beträgt O(1), da wir keinen zusätzlichen Raum verwenden.

Fazit – In diesem Artikel haben wir den Algorithmus von Tomohiko Sakamoto und die Intuition dahinter besprochen

Das obige ist der detaillierte Inhalt vonTomohiko Sakamotos Algorithmus – Ermitteln des Wochentags. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CLIP-BEVFormer: Überwacht explizit die BEVFormer-Struktur, um die Leistung der Long-Tail-Erkennung zu verbessern CLIP-BEVFormer: Überwacht explizit die BEVFormer-Struktur, um die Leistung der Long-Tail-Erkennung zu verbessern Mar 26, 2024 pm 12:41 PM

Oben geschrieben und das persönliche Verständnis des Autors: Derzeit spielt das Wahrnehmungsmodul im gesamten autonomen Fahrsystem eine entscheidende Rolle Das Steuermodul im autonomen Fahrsystem trifft zeitnahe und korrekte Urteile und Verhaltensentscheidungen. Derzeit sind Autos mit autonomen Fahrfunktionen in der Regel mit einer Vielzahl von Dateninformationssensoren ausgestattet, darunter Rundumsichtkamerasensoren, Lidar-Sensoren und Millimeterwellenradarsensoren, um Informationen in verschiedenen Modalitäten zu sammeln und so genaue Wahrnehmungsaufgaben zu erfüllen. Der auf reinem Sehen basierende BEV-Wahrnehmungsalgorithmus wird von der Industrie aufgrund seiner geringen Hardwarekosten und einfachen Bereitstellung bevorzugt, und seine Ausgabeergebnisse können problemlos auf verschiedene nachgelagerte Aufgaben angewendet werden.

Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Jun 03, 2024 pm 01:25 PM

Zu den häufigsten Herausforderungen, mit denen Algorithmen für maschinelles Lernen in C++ konfrontiert sind, gehören Speicherverwaltung, Multithreading, Leistungsoptimierung und Wartbarkeit. Zu den Lösungen gehören die Verwendung intelligenter Zeiger, moderner Threading-Bibliotheken, SIMD-Anweisungen und Bibliotheken von Drittanbietern sowie die Einhaltung von Codierungsstilrichtlinien und die Verwendung von Automatisierungstools. Praktische Fälle zeigen, wie man die Eigen-Bibliothek nutzt, um lineare Regressionsalgorithmen zu implementieren, den Speicher effektiv zu verwalten und leistungsstarke Matrixoperationen zu nutzen.

Entdecken Sie die zugrunde liegenden Prinzipien und die Algorithmusauswahl der C++-Sortierfunktion Entdecken Sie die zugrunde liegenden Prinzipien und die Algorithmusauswahl der C++-Sortierfunktion Apr 02, 2024 pm 05:36 PM

Die unterste Ebene der C++-Sortierfunktion verwendet die Zusammenführungssortierung, ihre Komplexität beträgt O(nlogn) und bietet verschiedene Auswahlmöglichkeiten für Sortieralgorithmen, einschließlich schneller Sortierung, Heap-Sortierung und stabiler Sortierung.

Kann künstliche Intelligenz Kriminalität vorhersagen? Entdecken Sie die Möglichkeiten von CrimeGPT Kann künstliche Intelligenz Kriminalität vorhersagen? Entdecken Sie die Möglichkeiten von CrimeGPT Mar 22, 2024 pm 10:10 PM

Die Konvergenz von künstlicher Intelligenz (KI) und Strafverfolgung eröffnet neue Möglichkeiten zur Kriminalprävention und -aufdeckung. Die Vorhersagefähigkeiten künstlicher Intelligenz werden häufig in Systemen wie CrimeGPT (Crime Prediction Technology) genutzt, um kriminelle Aktivitäten vorherzusagen. Dieser Artikel untersucht das Potenzial künstlicher Intelligenz bei der Kriminalitätsvorhersage, ihre aktuellen Anwendungen, die Herausforderungen, denen sie gegenübersteht, und die möglichen ethischen Auswirkungen der Technologie. Künstliche Intelligenz und Kriminalitätsvorhersage: Die Grundlagen CrimeGPT verwendet Algorithmen des maschinellen Lernens, um große Datensätze zu analysieren und Muster zu identifizieren, die vorhersagen können, wo und wann Straftaten wahrscheinlich passieren. Zu diesen Datensätzen gehören historische Kriminalstatistiken, demografische Informationen, Wirtschaftsindikatoren, Wettermuster und mehr. Durch die Identifizierung von Trends, die menschliche Analysten möglicherweise übersehen, kann künstliche Intelligenz Strafverfolgungsbehörden stärken

Verbesserter Erkennungsalgorithmus: zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern Verbesserter Erkennungsalgorithmus: zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern Jun 06, 2024 pm 12:33 PM

01Ausblicksübersicht Derzeit ist es schwierig, ein angemessenes Gleichgewicht zwischen Detektionseffizienz und Detektionsergebnissen zu erreichen. Wir haben einen verbesserten YOLOv5-Algorithmus zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern entwickelt, der mehrschichtige Merkmalspyramiden, Multierkennungskopfstrategien und hybride Aufmerksamkeitsmodule verwendet, um die Wirkung des Zielerkennungsnetzwerks in optischen Fernerkundungsbildern zu verbessern. Laut SIMD-Datensatz ist der mAP des neuen Algorithmus 2,2 % besser als YOLOv5 und 8,48 % besser als YOLOX, wodurch ein besseres Gleichgewicht zwischen Erkennungsergebnissen und Geschwindigkeit erreicht wird. 02 Hintergrund und Motivation Mit der rasanten Entwicklung der Fernerkundungstechnologie wurden hochauflösende optische Fernerkundungsbilder verwendet, um viele Objekte auf der Erdoberfläche zu beschreiben, darunter Flugzeuge, Autos, Gebäude usw. Objekterkennung bei der Interpretation von Fernerkundungsbildern

Wo ist der Ort, an dem in Destiny Ark das Kerzenlicht scheint? Wo ist der Ort, an dem in Destiny Ark das Kerzenlicht scheint? Mar 20, 2024 pm 05:46 PM

Mit der Eröffnung einer neuen Version der neuen Karte von Ark of Destiny gibt es zusätzlich zur Rowan-Karte auch eine tägliche Mission, die von Belongnan aus gestartet wird Das Ziel „Die richtige Karte finden“ wurde nicht erreicht. „Der Ort, an dem das Kerzenlicht scheint“. Hier ist der Leitfaden für diese Aufgabe Den Ort, an dem das Kerzenlicht scheint, finden Sie im Raum der Weisheitsinsel der Arche des Schicksals. In der Halle gibt es auch einen Korridor, der in den Keller führen kann Aufgaben, wie im Bild gezeigt:

Anwendung von Algorithmen beim Aufbau einer 58-Porträt-Plattform Anwendung von Algorithmen beim Aufbau einer 58-Porträt-Plattform May 09, 2024 am 09:01 AM

1. Hintergrund des Baus der 58-Portrait-Plattform Zunächst möchte ich Ihnen den Hintergrund des Baus der 58-Portrait-Plattform mitteilen. 1. Das traditionelle Denken der traditionellen Profiling-Plattform reicht nicht mehr aus. Der Aufbau einer Benutzer-Profiling-Plattform basiert auf Data-Warehouse-Modellierungsfunktionen, um Daten aus mehreren Geschäftsbereichen zu integrieren, um genaue Benutzerporträts zu erstellen Und schließlich muss es über Datenplattformfunktionen verfügen, um Benutzerprofildaten effizient zu speichern, abzufragen und zu teilen sowie Profildienste bereitzustellen. Der Hauptunterschied zwischen einer selbst erstellten Business-Profiling-Plattform und einer Middle-Office-Profiling-Plattform besteht darin, dass die selbst erstellte Profiling-Plattform einen einzelnen Geschäftsbereich bedient und bei Bedarf angepasst werden kann. Die Mid-Office-Plattform bedient mehrere Geschäftsbereiche und ist komplex Modellierung und bietet allgemeinere Funktionen. 2.58 Benutzerporträts vom Hintergrund der Porträtkonstruktion im Mittelbahnsteig 58

Fügen Sie SOTA in Echtzeit hinzu und explodieren Sie! FastOcc: Schnellere Inferenz und ein einsatzfreundlicher Occ-Algorithmus sind da! Fügen Sie SOTA in Echtzeit hinzu und explodieren Sie! FastOcc: Schnellere Inferenz und ein einsatzfreundlicher Occ-Algorithmus sind da! Mar 14, 2024 pm 11:50 PM

Oben geschrieben & Das persönliche Verständnis des Autors ist, dass im autonomen Fahrsystem die Wahrnehmungsaufgabe eine entscheidende Komponente des gesamten autonomen Fahrsystems ist. Das Hauptziel der Wahrnehmungsaufgabe besteht darin, autonome Fahrzeuge in die Lage zu versetzen, Umgebungselemente wie auf der Straße fahrende Fahrzeuge, Fußgänger am Straßenrand, während der Fahrt angetroffene Hindernisse, Verkehrszeichen auf der Straße usw. zu verstehen und wahrzunehmen und so flussabwärts zu helfen Module Treffen Sie richtige und vernünftige Entscheidungen und Handlungen. Ein Fahrzeug mit autonomen Fahrfähigkeiten ist in der Regel mit verschiedenen Arten von Informationserfassungssensoren ausgestattet, wie z. B. Rundumsichtkamerasensoren, Lidar-Sensoren, Millimeterwellenradarsensoren usw., um sicherzustellen, dass das autonome Fahrzeug die Umgebung genau wahrnehmen und verstehen kann Elemente, die es autonomen Fahrzeugen ermöglichen, beim autonomen Fahren die richtigen Entscheidungen zu treffen. Kopf

See all articles