Bonjour a tous,
Est-ce que quelqu'un sait comment écrire une fonction qui return une valeur random et n'utilise pas les librairies <stdlib.h> et <time.h>?
merci
Bonjour a tous,
Est-ce que quelqu'un sait comment écrire une fonction qui return une valeur random et n'utilise pas les librairies <stdlib.h> et <time.h>?
merci
Sous nux, tu ouvres un flux en lecture sur /dev/random et tu lis quelques octets.
Sous Windows, tu peux utiliser la CryptoAPI et sa fonction CryptGenRandom().
Mais je suppose que ton exercice consiste plutôt à trouver un algorithme de génération pseudo-aléatoire (j'en ai vu dans mes cours de "simulation" en école d'ingé), et de l'implémenter en C.
PS: <stdlib.h> et <time.h> ne sont pas des bibliothèques ("librairie" est un anglicisme sur un faux-ami), mais des fichiers d'en-tête de la bibliothèque standard du C.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Tu trouveras le pseudo-code pour un algo tel que Mersenne Twister ici: http://en.wikipedia.org/wiki/Mersenne_Twister
Avec une implantation en C ici: http://www.cs.hmc.edu/~geoff/mtwist.html
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Au passage, une question tout bête, comment initialiser un algo tel que Mersenne Twister autrement qu'avec le concept du temps ?
Tu ne peux pas avoir un truc imprévisible.
Mais tu peux l'initialiser avec ton ID de processus, ou tout simplement demander la "graine" à l'utilisateur (typiquement dans le cas d'un logiciel de simulation)...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Si j'ai bien compris, parce que c'est un exercice et qu'il n'a pas le droit.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Non non, pour moi c'était une question de curiosité. J'ai cherché à droite à gauche, trouvé plusieurs solutions (notamment le process ID comme Médinoc l'avait dit).
Sur linux à priori, il y a la commande /dev/random qui permet de récupérer une graine sympatoche.
http://en.wikipedia.org/wiki/Urandom
Pour la petite histoire, je suis tombé sur un lien ou des universitaire avait craqué les mdp netscape car il s'était rendu compte que le random de netscape se basait sur l'heure et l'ID process ^^
Partager