Sylvain Mahé Artisan mécatronique Retour à l'accueil Profil Âge : 36 ans
Situation familiale : Union libre
Nationalité : Française
Permis : B
"Autodidacte & créatif, autonomie & travail en équipe, savoir-faire & savoir-être" Contact ✕ Ville : Nantes
✆ Téléphone : 06.45.49.96.98
✉ E-mail : contact@sylvainmahe.site
✎ Site web : sylvainmahe.site
Centres d'intérêts ✓ Philosophie des sciences.
✓ Écologie & biodiversité.
✓ Artisanat & partage d'inventions.
✓ Lecture & écriture d'ouvrages.
✓ Sport : cyclisme & natation.
Écriture de la page : Sylvain Mahé
Générer des nombres aléatoires avec la classe Random Par définition, l'électronique numérique dans sa conception même est un environnement complètement déterministe, ce qui exclut le hasard. Éventuellement, une suite de nombres dits pseudo-aléatoires (appelés ainsi de part leurs caractères difficilement prédictibles) peuvent être générés via des calculs plus ou moins élaborés, mais ils n'en restent pas moins entièrement déterminés. Pour effectuer de l'aléatoire avec un microcontrôleur déterministe, il convient donc d'y introduire une variable extérieur dont l'évolution est imprévisible et incalculable. Une bonne solution consiste à laisser en l'air (connectée à rien en externe) une broche reliée au convertisseur analogique/numérique du microcontrôleur dans le but de capter le bruit électromagnétique provenant de l'extérieur (et du composant lui même finalement). La classe Random propose l'option d'utiliser un port de l'automate programmable relié au convertisseur analogique/numérique du microcontrôleur comme source d'approvisionnement en bruit analogique, mais également dispose d'un générateur de bruit artificiel (pseudo aléatoire) lorsque le bruit analogique est identique sur plusieurs mesures consécutives (et par conséquent rejeté de l'équation), ce qui en fait un algorithme très robuste. Exemple d'utilisation de la classe Random : #include <Random.h> int main() { Random::seed (25); Random::integer (1, 6); return 0; } Dans cet exemple la fonction statique seed est appelée prenant en seul paramètre l'utilisation du port GPIO numéro 25 de l'automate programmable comme source externe de bruit analogique. Puis la fonction statique integer est appelée prenant en paramètres l'intervalle de nombres aléatoires souhaitée (de 1 à 6 dans l'exemple), ceux-ci peuvent être indifféremment plus petits ou plus grands l'un par rapport à l'autre (de 6 à 1). Après calculs, cette fonction retourne un nombre entier aléatoire que vous pouvez utiliser dans votre programme. À noter que ce sont chaque bit du nombre aléatoire généré dans l'intervalle de nombres demandé qui fera l'objet d'un calcul et d'un traitement distinct via le bruit analogique récupéré et le générateur de bruit artificiel, ce qui garanti une probabilité la plus linéaire et naturelle possible. Une autre fonction existe : Une fonction statique boolean permet de générer et retourner un état binaire false (faux) ou true (vrai) aléatoire. Références : Récapitulatif des fonctions de cette classe : static void seed (const unsigned char PIN); static bool boolean(); static signed long integer (const signed long MIN, const signed long MAX);