badboy38
Messages postés95Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention 4 mars 2013
-
4 févr. 2009 à 16:55
badboy38
Messages postés95Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention 4 mars 2013
-
4 févr. 2009 à 22:32
Bonjour,
je viens de "feuilleter" le forum à la recherche de la perle rare, mais..... enfin, voila mon problème: je dois générer un nombre aléatoire entre 3 et 15 MAIS (parce que sans mais c'est pas marrant) sans utiliser la fonction rand() ou consort (qui sont dans une librairie). En effet, mon code doit être exécuté par un PIC (microcontroleur) et non par mon PC, et je n'ai pas la mémoire nécessaire pour installer une librairie....
est ce que quelqu'un aurai une idée de l'algorithme à mettre en place?...?
cs_goodboy21
Messages postés29Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention11 avril 2010 4 févr. 2009 à 22:05
tu peux utiliser la fonction GetTickCount qui te retourneras le nombre de millisecondes depuis que le pc est allumé et ensuite tu prends le modulo 13 de la fonction auquel tu ajoute 3 pour avoir ton nombre aléatoire entre 3 et 15.
bien entendu ce sera du pseudo-aléatoire:
int aleat=GetTickCount()%13 +3;
GetTickCount()%13 te retourne un nombre entre 0 et 12 et en ajoutant 3 tu obtiens ton nombre aléatoire entre 3 et 15.
badboy38
Messages postés95Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention 4 mars 2013 4 févr. 2009 à 22:32
merci pour vos réponses
je me suis servi de la source de JCDjcd, en fait de l'idée de construction. Un tableau de quelques nombres aléatoires incrusté dans la ROM du PIC avant de lancer le programme, puis on fait un cycle. Certes il n'y a que 10 nombres aléatoires, mais ça suffit pour mon application.