Aller au contenu

RANDOM EN C


Chester

Messages recommandés

Posté(e)

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)

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 :-D

Posté(e)

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 :-D

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)

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 :-D

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 :-D

Posté(e)

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)

par curiosité personne ne sait capturer la frequence du processeur?

En bash:

cat /proc/cpuinfo | grep "MHz" | cut -d \  -f 3-

Posté(e)

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)

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 :eeek2: de généré sur un PC pas très puissant mais en direction du cache L2 :roll: .

  • 2 semaines après...
Posté(e)

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 :D

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...