Aspects méconnus des fonctions virtuelles en C++
Fonctions virtuelles : concepts fondamentaux
Les fonctions virtuelles permettent une liaison dynamique des appels lors de l'héritage. Chaque classe contenant des fonctions virtuelles possède une table de fonctions virtuelles (vtable) stockant les adresses des implémentations. Lorsqu'un pointeur de classe de base référence un objet dérivé, la vt ...
Publié le 13 juillet à 10h42
Résolution de problèmes de compétition algorithmique en C++
Optimisation des entraînements militaires
Approche gloutonne : Trier les soldats par nombre d'entraînements nécessaires. Calculer le coût total actuel et comparer avec le coût groupé pour prendre la décision optimale à chaque étape.
#include <iostream>
#include <vector>
#include <algorithm>
struct Soldat {
long long prix; ...
Publié le 13 juillet à 00h57
Solution : Somme d'une suite définie par différences de nombres premiers
Énoncé du problème
Soit \(n\) la longueur d'une suite \((a_i)\) définie ainsi :
\(a_1\) est le \(n\)-ième nombre premier.
Pour \(i \ge 2\), la différence \(a_i - a_{i-1}\) est le \(i\)-ème nombre premier en partant de la fin (c'est-à-dire le \((n-i+1)\)-ième nombre premier).
On demande la somme de tous les termes de cette suite. Approche
Avec ...
Publié le 12 juillet à 05h37
CMake : guide pratique de l'outil de génération de builds
Vue d'ensemble de CMake
CMake est un méta-générateur de systèmes de construction. Il ne compile pas directement le code source, mais produit les fichiers nécessaires à un outil de build natif. Selon la plate-forme cible, il génère des solutions Visual Studio (.sln), des Makefile, des projets Xcode ou des fichiers build.ninja. Cette abstraction ...
Publié le 12 juillet à 05h22
Gestion de la mémoire dynamique en C++ avec les pointeurs intelligents
Mémoire dynamique en C++
Les programmes précédents utilisaient des objets avec des durées de vie prédéfinies :
Objets globaux : alloués au lancement, détruits à l'arrêt
Objets locaux automatiques : créés à l'entrée du bloc, détruits à la sortie
Objets statiques locaux : alloués avant première utilisation, détruits à l'arrêt
Pour dépasser ces ...
Publié le 12 juillet à 03h40
Images de profondeur avec PCL
Les méthodes d'acquisition des images de profondeur incluent la lidar, la vision stéréoscopique par ordinateur, les machines à mesurer coordonnées, les franges de Moiré et la lumière structurée. Les recherches sur les images de profondeur se concentrent principalement sur les aspects suivants :
Techniques de segmentation des images de profonde ...
Publié le 12 juillet à 00h25
Solutions des Problèmes A à E : Codeforces Round 976 (Div. 2)
Problème A
Énoncé : On vous donne deux entiers \(n\) et \(k\). En une opération, vous pouvez soustraire n'importe quelle puissance de \(k\) (c'est-à-dire \(k^x\) pour \(x \ge 0\)) de \(n\). Trouvez le nombre minimum d'opérations pour réduire \(n\) à \(0\).
Analyse : La solution optimale consiste à représenter \(n\) en base \(k\). Le nombre mini ...
Publié le 12 juillet à 00h01
Simulation dans les algorithmes et structures de données
Présentation de la simulation
La simulation est une technique fondamentale en informatique, souvent la première rencontrée par les étudiants en algorithmique. Sa difficulté peut varier considérablement, allant de problèmes simples comme « A+B » ou « Arbres devant l'école » à des défis complexes tels que « Porc Killer » ou « Batialle spatiale su ...
Publié le 11 juillet à 22h12
Guide pratique de création et de gestion du cycle de vie des nœuds ROS 2
Principes des nœuds dans ROS 2
Dans ROS 2, un nœud constitue l'unité d'exécution fondamentale, responsable d'une fonction distincte au sein d'un système robotique. Cette conception modulaire améliore la flexibilité et facilite la maintenance, permetttant une composition similaire à des blocs assemblables.
La communication entre nœuds s'effec ...
Publié le 10 juillet à 23h51
Optimisation des Palindromes avec la Programmation Dynamique
La programmation dynamique est une technique puissante pour résoudre des problèmes en décomposant une tâche complexe en sous-problèmes plus simples. Cet article explorera son application à deux défis classiques impliquant les palindromes : le comptage de sous-chaînes palindromiques et la détermniation du nombre minimal de coupes pour partitionn ...
Publié le 10 juillet à 20h16