Chester Posté(e) le 3 mars 2006 Partager Posté(e) le 3 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
keneda212 Posté(e) le 3 mars 2006 Partager Posté(e) le 3 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Chester Posté(e) le 3 mars 2006 Auteur Partager Posté(e) le 3 mars 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 ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Legion.nux Posté(e) le 3 mars 2006 Partager Posté(e) le 3 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 3 mars 2006 Partager Posté(e) le 3 mars 2006 Ca fait du pseudo aléatoire, et quand t'as des bugs les comportements aléatoires c'est pas le top :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 4 mars 2006 Partager Posté(e) le 4 mars 2006 #include <time.h> srand ( time(NULL) ); rand()%MOD; man srand man rand Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 4 mars 2006 Partager Posté(e) le 4 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
RaphAstronome Posté(e) le 4 mars 2006 Partager Posté(e) le 4 mars 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Chester Posté(e) le 5 mars 2006 Auteur Partager Posté(e) le 5 mars 2006 srand( (unsigned)time( NULL ) ); ca marche nikel ca... par curiosité personne ne sait capturer la frequence du processeur? Lien vers le commentaire Partager sur d’autres sites More sharing options...
kmlz Posté(e) le 5 mars 2006 Partager Posté(e) le 5 mars 2006 par curiosité personne ne sait capturer la frequence du processeur? En bash: cat /proc/cpuinfo | grep "MHz" | cut -d \ -f 3- Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 6 mars 2006 Partager Posté(e) le 6 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 6 mars 2006 Partager Posté(e) le 6 mars 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 6 mars 2006 Partager Posté(e) le 6 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
RaphAstronome Posté(e) le 9 mars 2006 Partager Posté(e) le 9 mars 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 . Lien vers le commentaire Partager sur d’autres sites More sharing options...
njoyard Posté(e) le 17 mars 2006 Partager Posté(e) le 17 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 20 mars 2006 Partager Posté(e) le 20 mars 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 21 mars 2006 Partager Posté(e) le 21 mars 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.