Chester Posted March 3, 2006 Share Posted March 3, 2006 Bon je suis en premierre année école d'ingé ( prepa ) On fait les bases en C, et on doi creer un algorithme ou j'ai besoin d'une vraie fonction random. Le souci, c'est que le C n'offre pas de fonction random( qui génere du pur aléatoire !!! tout le probleme est la!) ... je sais qu'on peut faire avec l'horloge du systeme. J'ai eu aussi une idée, pour avoir une pure fonction random : avoir la frequence la plus précise du processeur, celle ci n'étant pas stable. Je ne connais pas les fonctions pour réaliser cela.... voila mon souci... Et le deuxiemme est le rafraichissement de la frequence du proco, vu que les boucles vont etre rapide, il faut pas que ca fasse 2 fois la meme chose, ca ralentirait enormement... ( pas de probleme avec la methode de l'horloge? ) Merci a tous de vos reponses Link to comment Share on other sites More sharing options...
keneda212 Posted March 3, 2006 Share Posted March 3, 2006 faudrai que je recherche mais y'a une fonction random le probleme c'est qu'elle te donne une suite aléatoire mais toujours la meme suite pour cela, il faut l'initialisé avec l'horloge systeme le probleme... c'est que je sais plus comment qu'on fait Link to comment Share on other sites More sharing options...
Chester Posted March 3, 2006 Author Share Posted March 3, 2006 faudrai que je recherche mais y'a une fonction random le probleme c'est qu'elle te donne une suite aléatoire mais toujours la meme suite pour cela, il faut l'initialisé avec l'horloge systeme le probleme... c'est que je sais plus comment qu'on fait oui oui, je parlais de celle la... mais c'est pas une fonction random, c'est une suite de chiffre.. le mien c'est 125 ^^ Link to comment Share on other sites More sharing options...
Legion.nux Posted March 3, 2006 Share Posted March 3, 2006 Bon je suis en premierre année école d'ingé ( prepa ) On fait les bases en C, et on doi creer un algorithme ou j'ai besoin d'une vraie fonction random. Le souci, c'est que le C n'offre pas de fonction random... je sais qu'on peut faire avec l'horloge du systeme. J'ai eu aussi une idée, pour avoir une pure fonction random : avoir la frequence la plus précise du processeur.. Je ne connais pas les fonctions pour réaliser cela.... voila mon souci... Et le deuxiemme est le rafraichissement de la frequence du proco, vu que les boucles vont etre rapide, il faut pas que ca fasse 2 fois la meme chose, ca ralentirait enormement... ( pas de probleme avec la methode de l'horloge? ) Merci a tous de vos reponses Bonjour heu si dans C y'a des fonctions random encore heureux vu leur utilite... Apres leur pertinence n'est pas forcement geniale meme si tu files un seed genre horloge machine ca te donnera au final des nombre dit pseudo-aleatoires, c'est pour ca qu'il existe aussi des lib pour faire des randoms number un peu plus accurate, mais bon pour ce que tu veux faire, les fonctions de base devraient suffire. Little Tips: Google -> C random Bon courage Link to comment Share on other sites More sharing options...
Baldurien Posted March 3, 2006 Share Posted March 3, 2006 Ca fait du pseudo aléatoire, et quand t'as des bugs les comportements aléatoires c'est pas le top :) Link to comment Share on other sites More sharing options...
theocrite Posted March 4, 2006 Share Posted March 4, 2006 #include <time.h> srand ( time(NULL) ); rand()%MOD; man srand man rand Link to comment Share on other sites More sharing options...
Baldurien Posted March 4, 2006 Share Posted March 4, 2006 raté, dans le man de rand() on donne une bonne façon pour obtenir une séquence aléatoire entre 0 et X :) et c'est pas le modulo Link to comment Share on other sites More sharing options...
RaphAstronome Posted March 4, 2006 Share Posted March 4, 2006 Le problème avec le modulo c'est qu'il peut légèrement favoriser certains nombres. Toute fois ça marche impec avec les nombres 2^n (n entier) : 1, 2, 4, 8, 16, 32, 64... Et ça marche à peu près correctement avec des petits nombres. Link to comment Share on other sites More sharing options...
Chester Posted March 5, 2006 Author Share Posted March 5, 2006 srand( (unsigned)time( NULL ) ); ca marche nikel ca... par curiosité personne ne sait capturer la frequence du processeur? Link to comment Share on other sites More sharing options...
kmlz Posted March 5, 2006 Share Posted March 5, 2006 par curiosité personne ne sait capturer la frequence du processeur? En bash: cat /proc/cpuinfo | grep "MHz" | cut -d \ -f 3- Link to comment Share on other sites More sharing options...
theocrite Posted March 6, 2006 Share Posted March 6, 2006 grep MHz /proc/cpuinfo | cut -d \ -f 3- Sinon en C, je l'ai su, ça doit se trouver avec l'ami google sans trop de difficultés. EDIT : Ou même : grep MHz /proc/cpuinfo|cut -d: -f2 Link to comment Share on other sites More sharing options...
Baldurien Posted March 6, 2006 Share Posted March 6, 2006 En C un coup de fopen("/proc/cpuinfo") et d'analyse du flux devrait faire l'affaire; bon ensuite c'est pas portable (sic) Link to comment Share on other sites More sharing options...
theocrite Posted March 6, 2006 Share Posted March 6, 2006 Oui, si je parlais d'une solution alternative, c'est justement parce que /proc/cpuinfo c'est moyennement portable. (En même temps je ne sais pas sous quoi tourne chester). C'est sûr que faire un fopen, c'est pas trop dur Link to comment Share on other sites More sharing options...
RaphAstronome Posted March 9, 2006 Share Posted March 9, 2006 Ca risque aussi d'être très lent avec le fopen("/proc/cpuinfo") ! Sinon sur Linux Magazine (le dernier) il y a un article sur la génération des nombres aléatoires avec le but d'être le plus rapide possible, jusqu'a 500Mo/s de généré sur un PC pas très puissant mais en direction du cache L2 . Link to comment Share on other sites More sharing options...
njoyard Posted March 17, 2006 Share Posted March 17, 2006 Sinon, pour un random, les décimales de Pi, caypamal non ? Sinon, une connexion sur http://www.randomnumbers.info/ qui génère des nombres aléatoires a partir d'une carte PCI à générateurs quantiques... lol Link to comment Share on other sites More sharing options...
lorinc Posted March 20, 2006 Share Posted March 20, 2006 juste pour dire : sous linux, on a /dev/urandom, qui est un excellent générateur de bruit. pour l'utiliser, rien de plus simple : tu l'ouvre, et tu lis des doubles dedans Link to comment Share on other sites More sharing options...
theocrite Posted March 21, 2006 Share Posted March 21, 2006 juste pour préciser que urandom est très bien, mais que /dev/random est beaucoup mieux en ce qu'il est carrément plus lent, mais il est vraiment aléatoire. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.