Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2419 connectés 

 


Dernière réponse
Sujet : [C/UNIX] le random prévisible
Titoine42 Super! Ca fonctionne! :bounce:
 
merci a tous :jap:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Titoine42 Super! Ca fonctionne! :bounce:
 
merci a tous :jap:
R@NNIS ca c est clair sinon c est bien lent ...
BifaceMcLeOD Tu peux rester au généteur 16-bits standard, mais à mon avis, il te manque un appel à srand().
 
PS: Pas besoin de le faire à chaque tirage, c'est trop coûteux. Le faire une fois au début suffit amplement ! Et après, tu fais des "rand() % MY_MAX_VALUE".
R@NNIS #include <stdlib.h>
 
int   my_rand(int n)
{
  int value;
 
  srand(time(0));
  value = (rand()%n);
  return (value);
}

 

[edit]--Message édité par R@NNIS--[/edit]

Titoine42 Je fais entre 2000 et 5000 tirages mais je veux un nombre entre 1 et 4 chiffres maxi.
Je precise que le tout doit etre le plus rapide possible.
 
En fait, c'est pour le positionnement aleatoire de ressources pour une sorte de jeu de strategie.
BifaceMcLeOD tfj57> Merci !  :jap:  
 
Titoine42> Tu fais combien de tirages aléatoires ? Si c'est peu, alors c'est parce que tu ne fais pas "srand(getpid())" ou (plus courant) "srand(time())". Si c'est beaucoup au moin 5000 ou 10 000, alors il faut que tu changes de générateur aléatoire.
tfj57 Voir l'ancien topic, si cela peut t'aider :
 
http://forum.hardware.fr/sqlforum/ [...] inc&cache=
 
Salutations
zop

Titoine42 a écrit a écrit :

Comment faire un random qui soit dans une fourchette de valeurs relativement faibles et que les resultats ne soient pas cycliques.
 
J'ai tenté de faire random() divise par une constante (pour avoir plus de chance de tomber dans ma fourchette) mais je retrouve les mêmes séquences a chaque execution de mon programme.
 
 




 
Il faut que initialise la séquence avec une valeur à toi (et qui change bien sûr) . Généralement on prend l'heure ou le pid du process comme seed.
Ex : srand(getpid());

Titoine42 Comment faire un random qui soit dans une fourchette de valeurs relativement faibles et que les resultats ne soient pas cycliques.
 
J'ai tenté de faire random() divise par une constante (pour avoir plus de chance de tomber dans ma fourchette) mais je retrouve les mêmes séquences a chaque execution de mon programme.

 

[edit]--Message édité par Titoine42--[/edit]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)