Posté(e) le 3 mars 200619 a 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
Posté(e) le 3 mars 200619 a 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
Posté(e) le 3 mars 200619 a Auteur 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 ^^
Posté(e) le 3 mars 200619 a 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
Posté(e) le 3 mars 200619 a Ca fait du pseudo aléatoire, et quand t'as des bugs les comportements aléatoires c'est pas le top :)
Posté(e) le 4 mars 200619 a 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
Posté(e) le 4 mars 200619 a 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.
Posté(e) le 5 mars 200619 a Auteur srand( (unsigned)time( NULL ) ); ca marche nikel ca... par curiosité personne ne sait capturer la frequence du processeur?
Posté(e) le 5 mars 200619 a par curiosité personne ne sait capturer la frequence du processeur? En bash: cat /proc/cpuinfo | grep "MHz" | cut -d \ -f 3-
Posté(e) le 6 mars 200619 a 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
Posté(e) le 6 mars 200619 a En C un coup de fopen("/proc/cpuinfo") et d'analyse du flux devrait faire l'affaire; bon ensuite c'est pas portable (sic)
Posté(e) le 6 mars 200619 a 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
Posté(e) le 9 mars 200619 a 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 .
Posté(e) le 17 mars 200619 a 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
Posté(e) le 20 mars 200619 a 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
Posté(e) le 21 mars 200619 a 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.
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.