L'algorithme de Tomohiko Sakamoto - trouver le jour de la semaine
Dans cet article, nous discuterons de ce qu'est l'algorithme de Tomohiko Sakamoto et comment l'utiliser pour identifier le jour de la semaine à une date donnée. Il existe plusieurs algorithmes pour connaître le jour de la semaine, mais celui-ci est le plus puissant. Cet algorithme trouve le jour du mois au cours duquel cette date apparaît dans le plus petit temps possible et avec la plus petite complexité spatiale.
Énoncé du problème - On nous donne une date basée sur le calendrier géorgien et notre tâche est de savoir quel jour de la semaine la date donnée est en utilisant l'algorithme de Tomohiko Sakamoto.
Exemple
Entrez - Date = 30, Mois = 04, Année = 2020
Sortie - La date indiquée est lundi
Entrez - Date = 15, Mois = 03, Année = 2012
Sortie - La date indiquée est jeudi
Entrée - Date = 24, Mois = 12, Année = 2456
Sortie - La date indiquée est dimanche
Algorithme de Sakamoto Tomohiko
Parlons maintenant de l’intuition derrière l’algorithme de Tomohiko Sakamoto.
Comme nous le savons tous, selon le calendrier géorgien, le 1er janvier après JC tombe un lundi.
Cas 1 Ignorer les années bissextiles
Nous discutons d'abord du cas où toutes les années bissextiles sont ignorées, c'est-à-dire qu'il y a 365 jours dans une année.
Puisque janvier a 31 jours et qu'une semaine a 7 jours, on peut dire que janvier a 7*4 + 3 jours, ce qui signifie que le premier jour de février est toujours 3 jours après le premier jour de janvier. p>
Comme février compte 28 jours (sauf les années bissextiles), ce qui est lui-même un multiple de 7, on peut dire que le 1er mars sera le même jour que le 1er février, ce qui veut dire que le 1er mars sera aussi le 3 janvier quelques jours après la date.
Maintenant, pour avril, mars compte 31 jours, soit 7*4 +3, ce qui signifie que cela se produira 3 jours après le 1er mars. On peut donc dire que le 1er avril surviendra 6 jours après le 1er janvier.
Nous allons maintenant construire un tableau où arr[i] représente le nombre de jours supplémentaires depuis le mois i par rapport au 1er janvier.
Nous avons arr[] = { 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }.
Cas 2 Année bissextile
Parlons maintenant de la situation des années bissextiles.
Tous les quatre ans, un jour est ajouté à nos calculs, mais pas tous les cent ans. Nous devons tenir compte de ces jours supplémentaires. Pour cela nous utiliserons la formule -
Année/4 (Tous les 4 ans)
– Année / 100 (pour chaque 100 années qui est un multiple de 4 mais qui n'est toujours pas bissextile, on le retire de l'année bissextile)
+ année / 400 (tous les 400 ans, c'est un multiple de 100, mais toujours une année récurrente)
Cette formule nous donnera le nombre précis d’années bissextiles. Il existe cependant une exception.
Maintenant, nous savons que le 29 février est considéré comme un jour bissextile, et non le 0 janvier.
Cela signifie que nous n’avons pas besoin d’inclure les deux premiers mois de l’année dans le calcul car les jours bissextiles n’ont aucun effet sur eux. Donc si c'est janvier ou février, on soustraira 1 à l'année pour compenser. Par conséquent, au cours de ces mois, la valeur de année/4 doit être basée sur l’année précédente plutôt que sur l’année en cours.
Pour tenir compte du problème des années bissextiles, nous pouvons soustraire 1 de la valeur arr[] pour chaque mois après février pour combler les lacunes. Cela résout le problème des années bissextiles. Nous devons apporter les modifications suivantes à l’algorithme afin qu’il fonctionne à la fois dans les années bissextiles et dans les années plates.
arr[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }
Si le mois en cours est janvier ou février, nous devons soustraire 1 à l'année.
Nous devons modifier l'incrément d'année dans le module en année + année/4 – année/100 + année/400 au lieu de année. Ce changement est nécessaire pour tenir compte du jour supplémentaire dans une année bissextile et ajuster les calculs en conséquence.
Exemple
Le code de cette méthode est :
#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; }
Sortie
The given date is on Wednesday
Complexité
Complexité temporelle - La complexité temporelle de cette méthode est O(1)
Complexité spatiale - La complexité spatiale de cette approche est O(1) puisque nous n'utilisons aucun espace supplémentaire.
Conclusion - Dans cet article, nous avons discuté de l'algorithme de Tomohiko Sakamoto et de l'intuition qui se cache derrière lui
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Écrit ci-dessus et compréhension personnelle de l'auteur : À l'heure actuelle, dans l'ensemble du système de conduite autonome, le module de perception joue un rôle essentiel. Le véhicule autonome roulant sur la route ne peut obtenir des résultats de perception précis que via le module de perception en aval. dans le système de conduite autonome, prend des jugements et des décisions comportementales opportuns et corrects. Actuellement, les voitures dotées de fonctions de conduite autonome sont généralement équipées d'une variété de capteurs d'informations de données, notamment des capteurs de caméra à vision panoramique, des capteurs lidar et des capteurs radar à ondes millimétriques pour collecter des informations selon différentes modalités afin d'accomplir des tâches de perception précises. L'algorithme de perception BEV basé sur la vision pure est privilégié par l'industrie en raison de son faible coût matériel et de sa facilité de déploiement, et ses résultats peuvent être facilement appliqués à diverses tâches en aval.

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

La couche inférieure de la fonction de tri C++ utilise le tri par fusion, sa complexité est O(nlogn) et propose différents choix d'algorithmes de tri, notamment le tri rapide, le tri par tas et le tri stable.

La convergence de l’intelligence artificielle (IA) et des forces de l’ordre ouvre de nouvelles possibilités en matière de prévention et de détection de la criminalité. Les capacités prédictives de l’intelligence artificielle sont largement utilisées dans des systèmes tels que CrimeGPT (Crime Prediction Technology) pour prédire les activités criminelles. Cet article explore le potentiel de l’intelligence artificielle dans la prédiction de la criminalité, ses applications actuelles, les défis auxquels elle est confrontée et les éventuelles implications éthiques de cette technologie. Intelligence artificielle et prédiction de la criminalité : les bases CrimeGPT utilise des algorithmes d'apprentissage automatique pour analyser de grands ensembles de données, identifiant des modèles qui peuvent prédire où et quand les crimes sont susceptibles de se produire. Ces ensembles de données comprennent des statistiques historiques sur la criminalité, des informations démographiques, des indicateurs économiques, des tendances météorologiques, etc. En identifiant les tendances qui pourraient échapper aux analystes humains, l'intelligence artificielle peut donner du pouvoir aux forces de l'ordre.

L'ouverture d'une nouvelle version de la nouvelle carte de l'Arche du Destin comporte également une nouvelle mission de réputation. En plus de la carte Rowan, il existe également une mission quotidienne sur Wisdom Island. La mission préalable est lancée depuis Belongnan. a atteint l'objectif de "trouver la bonne carte". Il n'y a pas de guide pour ce lien "L'endroit où brille la bougie". Je suis également curieux de connaître l'emplacement spécifique. Voici le guide pour cette tâche ! Trouver l'endroit où brille la bougie se trouve dans la pièce de l'Île de la Sagesse de l'Arche du Destin. Il y a aussi un couloir dans le hall, qui peut mener au sous-sol. Lorsque vous entrez, vous pouvez voir l'emplacement du suivant. tâches, comme le montre l'image :

01Aperçu des perspectives Actuellement, il est difficile d'atteindre un équilibre approprié entre efficacité de détection et résultats de détection. Nous avons développé un algorithme YOLOv5 amélioré pour la détection de cibles dans des images de télédétection optique haute résolution, en utilisant des pyramides de caractéristiques multicouches, des stratégies de têtes de détection multiples et des modules d'attention hybrides pour améliorer l'effet du réseau de détection de cibles dans les images de télédétection optique. Selon l'ensemble de données SIMD, le mAP du nouvel algorithme est 2,2 % meilleur que YOLOv5 et 8,48 % meilleur que YOLOX, permettant ainsi d'obtenir un meilleur équilibre entre les résultats de détection et la vitesse. 02 Contexte et motivation Avec le développement rapide de la technologie de télédétection, les images de télédétection optique à haute résolution ont été utilisées pour décrire de nombreux objets à la surface de la Terre, notamment des avions, des voitures, des bâtiments, etc. Détection d'objets dans l'interprétation d'images de télédétection

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Écrit ci-dessus & La compréhension personnelle de l'auteur est que dans le système de conduite autonome, la tâche de perception est un élément crucial de l'ensemble du système de conduite autonome. L'objectif principal de la tâche de perception est de permettre aux véhicules autonomes de comprendre et de percevoir les éléments environnementaux environnants, tels que les véhicules circulant sur la route, les piétons au bord de la route, les obstacles rencontrés lors de la conduite, les panneaux de signalisation sur la route, etc., aidant ainsi en aval modules Prendre des décisions et des actions correctes et raisonnables. Un véhicule doté de capacités de conduite autonome est généralement équipé de différents types de capteurs de collecte d'informations, tels que des capteurs de caméra à vision panoramique, des capteurs lidar, des capteurs radar à ondes millimétriques, etc., pour garantir que le véhicule autonome peut percevoir et comprendre avec précision l'environnement environnant. éléments , permettant aux véhicules autonomes de prendre les bonnes décisions pendant la conduite autonome. Tête
