Premier billet de la saga ‘Weekday’ qui répond ici aux questions suivantes : « Quelle est la date du prochain lundi ? du prochain jeudi ? … ».
Ce billet présente aussi la fonction VBA ‘WeekDay()’ et sa matrice des résultats qui sert de base à la compréhension des algorithmes basés sur les jours de semaine.
Lire la suite
Archives du mot-clé Algorithme
Indices de similarité entre deux chaînes de caractères
Après l’algorithme de Damerau-Levenshtein qui mesure la distance minimale d’édition entre deux textes, je présente un algorithme plus simple et donc plus rapide qui calcule différents indices de similarité (Cosinus, Dice, Jaccard, Kulczynski,…) à partir de n-grammes (n-grams/q-grams en anglais) ou sous-séquences continues de caractères.
Lire la suite
Similarité entre deux chaînes de caractères
Pour tenter de réduire l’imperfection des ITCC, IPCC, ITPCC voire ITPCCC et plus généralement ICC(*), de nombreux algorithmes sont proposés (Soundex, Jaro-Winkler, …) et l’algorithme de Damerau-Levenshtein que j’ai implémenté ici en VBA.
Voir aussi le billet sur les indices de similarité et le billet sur la distance de Jaro-Winkler.
Lire la suite
Un meilleur RNG…
En parcourant le web, j’ai lu de nombreuses critiques concernant les générateurs de nombres aléatoires livrés avec les systèmes d’exploitation, les langages de programmation…
Et notre couple Randomize/Rnd que vaut-il ?
Lire la suite
Trouver la Nième plus petite valeur d’un tableau
On a souvent besoin de trouver la valeur mini ou maxi d’un tableau de valeurs numériques mais plus rarement la 10ème plus petite valeur, la 10 000 000ème… Je vous présente ici une implémentation en VBA d’un algorithme tout en un, d’une rare simplicité qui sélectionne en une fraction de seconde la valeur du rang désiré.
Lire la suite
Somme exacte en double précision
Certaines sommes en double précision sont entâchées d’erreurs d’arrondi (round-off error) qui peuvent fausser significativement les résultats. Je vous présente un algorithme qui compense ces erreurs.
Lire la suite
Approximer, en double précision, la loi normale gaussienne et son inverse
Je vous propose deux fonctions en VBA pour Access qui estiment la loi normale (ou loi de Laplace-Gauss) et son inverse en double précision. Pour rappel, Excel propose en standard ces fonctions (NORMDIST, NORMINV, NORMSDIST, NORMSINV) et des fonctions encore plus précises depuis Excel 2010 (NORM_DIST, NORM_INV, NORM_S_DIST, NORM_S_INV).
Générer des nombres aléatoires gaussiens
Je vous présente ici deux petites fonctions écrites en VBA qui permettent de générer des nombres pseudo-aléatoires à distribution normale. Une fonction de visualisation accompagne le tout.
Lire la suite
Numéro ISO des semaines
Le calcul du numéro ISO des semaines (ISO8601:2000) via les fonctions DatePart et Format de Microsoft Access n’est pas exact d’où la nécessité de créer une fonction spécifique.
Lire la suite
Nombre de jours ouvrés sur une période
Combien y’a t’il de jours ouvrés (du lundi au vendredi) entre deux dates ? A cette question vieille comme le monde, on a eu droit à de nombreux algorithmes, parfois exacts mais rarement rapides.
Je vais vous expliquer le mien qui apparaît comme étant très efficient…
Lire la suite