March 3, 200620 yr 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
March 3, 200620 yr 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
March 3, 200620 yr Author 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 ^^
March 3, 200620 yr 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
March 3, 200620 yr Ca fait du pseudo aléatoire, et quand t'as des bugs les comportements aléatoires c'est pas le top :)
March 4, 200620 yr 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
March 4, 200620 yr 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.
March 5, 200620 yr Author srand( (unsigned)time( NULL ) ); ca marche nikel ca... par curiosité personne ne sait capturer la frequence du processeur?
March 5, 200620 yr par curiosité personne ne sait capturer la frequence du processeur? En bash: cat /proc/cpuinfo | grep "MHz" | cut -d \ -f 3-
March 6, 200620 yr 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
March 6, 200620 yr En C un coup de fopen("/proc/cpuinfo") et d'analyse du flux devrait faire l'affaire; bon ensuite c'est pas portable (sic)
March 6, 200620 yr 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
March 9, 200620 yr 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 .
March 17, 200619 yr 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
March 20, 200619 yr 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
March 21, 200619 yr 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.
Archived
This topic is now archived and is closed to further replies.