Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
random en c++
Envoyé par: guitoune755

quelqu'un sait-il comment on génere un int aléatoir en c++.
j'ai essayerd'utilisé random(), mais le probleme est que la fonction me retourn toujours la meme suite de valeur et pour le coup c plus tres tres aléatoire.
un petit coup de main serai le bien venu!!!!
merci d'avance.

Poste le Tuesday 16 December 2003 12:40:30
Répondre     Citer    
Re: random en c++
Envoyé par: zerbro

Salut,

C'est normale, la fonction random() doit etre initialise avec srandom avant de t'en servir. Mais ne pas l'initialise avec un compteur fixe, c'est pour ca qu'on se base sur le temps.

Pour resumer voila les lignes de codes :

#include <time.h>

int main(){

int alea;

srandom(time(NULL));
alea = random();
...
}

et voila, alea sera un nombre pseudo aleatoire qui changera a chaque fois.

Poste le Tuesday 16 December 2003 12:58:14
Répondre     Citer    
Re: random en c++
Envoyé par: abgech

Non seulement c'est normal, mais c'est même indispensable de pouvoir obtenir les mêmes séries "aléatoires".
Par exemple, je désire simuler une file d'attente à un guichet. Les arrivées se font. en général selon une loi statistique impliquant des nombres aléatoires, le temps de service également. Pour pouvoir déterminer le nombre de guichets adéquats, et ne pas faire trop attendre (le logiciel ne concerne pas les guichets de l'administration :-) ) sans mettre trop de guichets ce qui coûte cher, il faut pouvoir faire une simulation avec différents guichets et les mêmes séries "aléatoires".
Je mets des " à aléatoire parce qu'il ne s'agit pas en fait de nombre aléatoires. La série est calculée à partir d'un germe (seed), on applique à ce germe, on applique à ce germe une fonction suffisament compliquée (comportant le plus souvent des débordements de capacité) pour que f(germe) puissent être considéré comme aléatoire. f(germe) constitue le premier nombre de la série, f(f(germe)) le deuxième, et ainsi de suite.
Dans notre cas particulier, srandom() fixe le germe et random implémente f(..).
La vie est belle !

Poste le Tuesday 16 December 2003 16:26:07
Répondre     Citer    
Re: random en c++
Envoyé par: guitoune755

Merci bien pour vos bon conseil.
J'ai tester ton code et ca marche nickel.
++
guitoune



---------------------------------------------------------------------------------------------
oulala mais ou il est passer mon boot windows........ :-)

Poste le Wednesday 17 December 2003 11:01:39
Répondre     Citer    
Re: random en c++
Envoyé par: miguel2i

si vous voulez un nombre vraiment aléatoire, et non pseudo aléatoire, utilisez /dev/random (ou urandom). Il suffit de l'ouvrir comme un fichier normal(fopen) et d'y lire des données (fread) et de le refermer (fclose). Vous pouvez même obtenir des char aléatoires !

Mais cette solution n'est pas utilisable sous Windows.

Poste le Wednesday 17 December 2003 23:41:37
Répondre     Citer    
Re: random en c++
Envoyé par: Spack

Salut j'utilse g++ sous windows mais j'arrive pas à créer un nombre aléatoire car ça me met ça :

---------- Capture Output ----------
"D:\Programmation\MinGW\bin\g++.exe" -o life life.cpp
life.cpp:40: return type specification for constructor invalid
life.cpp: In method `Life::Life(int)':
life.cpp:46: implicit declaration of function `int srandom(...)'
life.cpp:47: implicit declaration of function `int random(...)'
Terminated with exit code 1

Poste le Wednesday 24 December 2003 22:02:49
Répondre     Citer    
Re: random en c++
Envoyé par: Svear

J'ai l'impression que tu cherches à utiliser les fonctions "srandom" et "random" sans avoir inclus dans ton source les headers associés
Tu peux nous filer le source de ton constructeur "Life" STP ? Surtout les lignes 46 et 47...

Poste le Saturday 27 December 2003 02:54:13
Répondre     Citer    
Re: random en c++
Envoyé par: Spack

Ouais c bon je navais effectivement pas mis le header...Le problème est déjà réglé...

Poste le Saturday 27 December 2003 05:09:44
Répondre     Citer    
Re: random en c++
Envoyé par: fati

gggggg:-))Texte à mettre en gras

Poste le Tuesday 14 October 2008 22:55:39
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
random en c++
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons