sortir une coordonné aleatoire

sortir une coordonné aleatoire - C++ - Programmation

Marsh Posté le 04-09-2003 à 22:32:56    

quel est la fonction qui permet de sortir un nombre aleatoire parmit un choix donné (equiv de rnd en basic)

Reply

Marsh Posté le 04-09-2003 à 22:32:56   

Reply

Marsh Posté le 04-09-2003 à 22:37:23    

un générateur de nombre pseudo-aléatoire :
 
std::srand(std::time(NULL));
int r = std::rand();


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 04-09-2003 à 22:40:21    

Code :
  1. unsigned my_better_rand(unsigned N)
  2. {
  3.   return (unsigned)((double)std::rand()/((double)RAND_MAX+1)*N);
  4. }

Reply

Marsh Posté le 04-09-2003 à 22:41:26    

je viens de le lire sur ton site lol, mais vu que j'ai aps tout compris j'ai préféré pas le mettre ...
 
(double) est pas un cast c-style ?


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 05-09-2003 à 11:30:05    

Ca s'tape plus vite qu'un static_cast ;p

Reply

Marsh Posté le 05-09-2003 à 11:34:11    

BlackGoddess a écrit :

je viens de le lire sur ton site lol, mais vu que j'ai aps tout compris j'ai préféré pas le mettre ...
 
(double) est pas un cast c-style ?

bah c'est vieux, et quand j'avais tapé ça, si j'avais mis des nouveaux casts, personne aurait compris ...

Reply

Marsh Posté le 05-09-2003 à 11:36:17    

Taz a écrit :

bah c'est vieux, et quand j'avais tapé ça, si j'avais mis des nouveaux casts, personne aurait compris ...


 
Ils sont pas là pour être plus explicites les nouveaux opérateurs de cast?  :whistle:


---------------
Le Tyran
Reply

Marsh Posté le 05-09-2003 à 13:10:54    

comment ca s'ecrirait en c++ style alors ?


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 05-09-2003 à 13:15:19    

Code :
  1. unsigned my_better_rand2(unsigned N)
  2.   {
  3.       return unsigned( double(std::rand()) / double(RAND_MAX+1) * N);
  4.   }
  5. unsigned my_better_rand3(unsigned N)
  6.   {
  7.       return static_cast<unsigned>( static_cast<double>(std::rand()) / static_cast<double>(RAND_MAX+1) * N);
  8.   }

Reply

Marsh Posté le 05-09-2003 à 15:20:28    

oui ,mais pour une coordonnées 3D de type float compris entre 0.0f et 1.0f ,(c'est pour de l'OPENGL avec Dev C++)


Message édité par bleuerouge le 05-09-2003 à 15:29:49
Reply

Marsh Posté le 05-09-2003 à 15:20:28   

Reply

Marsh Posté le 05-09-2003 à 16:23:46    

ben tu fais float( double(std::rand()) / double(RAND_MAX+1) )
et voilà (le +1 c'est toi qui voit)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed