begin process at 2012 02 07 09:32:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

srand ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

srand ?

samedi 2 avril 2005 à 12:43:35 | srand ?

sebleboss2002

Salut à tous !

Je débute complètement en C, et je suis en train d'essayer de coder un jeu du "plus ou moins".
Mais j'ai un problème au niveau de la génération de nombres aléatoires. Mon code est le suivant :

int Nombre()
{
 srand((unsigned) time(NULL));
 return (rand() % 999) + 1;
}


Mais voilà, il me retourne un nombre dépendant d'un timer (apparemment), car lorsque j'exécute le code plusieurs fois d'affilées, les nombres générés sont toujours proportionnellement croissants ! Or, je voudrais qu'il puisse me générer coup sur coup un 1, un 785, un 420... Et non pas des 780, 785, 790, 795...

Quelqu'un a-t-il une solution à ça ?

Merci d'avance !

samedi 2 avril 2005 à 13:27:56 | Re : srand ?

steve_clamage

Tu as compris ce que fais srand, comment fonctionne rand ?
srand((unsigned) time(NULL)); est à appeler une fois, au debut du programme par exemple.
rand est un générateur de nombre pseudo aleatoire (un mauvais d'ailleur).
samedi 2 avril 2005 à 13:48:56 | Re : srand ?

sebleboss2002

D'abord, merci de ta réponse, je savais que srand devait être appelé en début de programme, mais je ne l'avait pas fait... Enfin, maintenant c'est bon, merci de m'avoir mis le nez sur mon erreur :-)

Mais sinon, je suis assez intéressé par tout ce que l'on pourra m'apprendre sur les fonctions srand et rand.
Et d'ailleurs, pourquoi dis-tu que celle-ci est mauvaise ?


samedi 2 avril 2005 à 14:31:16 | Re : srand ?

steve_clamage

Le rand fourni par la bibliothèque standard fonctionne avec une graine (un entier que tu initialises avec srand) et chaque nombre généré par rand dépend du précédent. Mets srand(2) par exemple au debut du programme et tu auras toujours la meme sequence.
samedi 2 avril 2005 à 15:57:17 | Re : srand ?

Arnaud16022

Membre Club
un ordi ne peut pas générer comme ca des nombres aléatoires.
en gros ce qu'il fait c'est qu'il récupèere le tickcount (nbre de millisecondes depuis le boot) , il le triture un peu et il te le refourge comme ca, c'est minable
la seule maniere a ma connaissance d'avoir des nombres réellement aléatoires c'est un module externe , qui envoie des photons sur des miroirs semi-réfléchissants, un trtuc de ouf bourré de physique quantique, qui en plus dois valoir des millions.et puis pour l'usage qu'on en fait, rand() est tres bien.
ya eu quelques forums la dessus par ici...

++
Arnaud

_______________________
Omnia vincit labor improbus
samedi 2 avril 2005 à 16:41:49 | Re : srand ?

steve_clamage

Pour résumer, on va dire qu'il est impossible dans la pratique de générer de vrai nombre aléatoire. Celui fournit par a bibliothèque standard est suffisant pour une utilisation "simple" et est portable, mais cela reste un tres mauvais générateur de nombres pseudo aléatoire, les applications scientifiques disposent souvent de leur propre générateur.
vendredi 4 novembre 2005 à 13:53:43 | Re : srand ?

fandezizou

Bonjour
J'aimerai savoir s'il vous plait avec Dev C++ comment on efface l'écran parce ke clrscr() ne fonctionne pas avec Dev.
Merci

vendredi 4 novembre 2005 à 14:28:43 | problème

fandezizou

Salut à tous!!!
j'ai un peitit problème avec les nombres aléatoires

j'ai mis ça  mais ça ne marche pas kek'1 aurait une idée.
j'ai bien mis srand au début et tout mais je ne trouve pas la cause de mon pb.

srand((unsigned) time(NULL))

D1=rand()%6 + 1;

merci d'avance.



Cette discussion est classée dans : nombre, code, nombres, srand, coup


Répondre à ce message

Sujets en rapport avec ce message

Liste de nombres aléatoires [ par byoushin ] Bonjour,je cherche comment générer une liste de nombre aléatoire.J'ai essayé en initialisant dans main srand(GetTickCount()); ou aussi srand(time(NULL très grand nombres en c++ [ par pop70 ] Bonjour, j'essaie actuellement de faire un petit programme de cryptage basé sur le principe du RSA, seulement pour cela il faut manipuler des très gra convertir nombres en lettre [ par sofaranaya ] Bonsoir tout le monde! J'ai grand besoin d'une aide à propos d'un programme en c++. Voilà en ce moment je travaille sur un programme qui doit convert Question : Variables static/méthode static/initialisation [ par Inutqen ] Bonjour à tous, j'ai besoin d'un coup de main :) J'ai un petit soucis avec un code C++, je suppose que la réponse à ma question se trouve quelque par Algorithme de groupage [ par MoknineMoknine ] Bonjour: je un tableau de nombre real. je veut un algorithme ou méthode pour regrouper ces nombres telque chaque groupe doit contenir les nombres qui nombre d'occurence des termes d'un fichier texte [ par mervat ] bonjour, ce programme permet de déterminer le nombre d'occurence de tous les termes dans un texte, j'ai créé une liste contenant les termes du texte, Random en C [ par Floriand60 ] Bonjour je viens de creer un petit code en C ou un utilisateur choisi 6 nombre qui sont dans un tableau ( il les tap l un apres l autre le tableau n e Windows plante {je sais pas nouveau } pour l'execution du mon code [ par darkwhite ] Salut a tous Je debute en C, et j'ai commencer a faire un petit programme. A la moitié de la creation je l'essaie mé windows me sort un message derreu problème avec les fonctions srand et rand [ par Marten ] Bonjour, J'utilise dev c++ Lorsque j'écris le code suivant, le compilateur me met deux erreurs :  srand(GetTickCount()); et rand() % _pGame->GetWidth(


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,321 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales