Stdlib.h nombre aléatoire. Diff Linux Win?
Fermé
Chmielnicki
-
8 juin 2004 à 21:22
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 9 juin 2004 à 20:12
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 9 juin 2004 à 20:12
A voir également:
- Diff message sur portable
- Message - Guide
- Nettoyer ordinateur portable lent - Guide
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
- Réinitialiser pc portable - Guide
4 réponses
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
9 juin 2004 à 08:54
9 juin 2004 à 08:54
sous windows, randomize est dans system.h
je ne crois pas que cela soit pour unix/linux
parcontre, dans stdlib.h, il y a rand:
int rand(void);
exemple rand()%10 retourne une valeur comprise entre 0 et9
(modulo 10 donne le reste de la division par 10)
rand(); permet d'initialiser le generateur de hasard.
c'est la fonction la plus portable.
cordialement
je ne crois pas que cela soit pour unix/linux
parcontre, dans stdlib.h, il y a rand:
int rand(void);
exemple rand()%10 retourne une valeur comprise entre 0 et9
(modulo 10 donne le reste de la division par 10)
rand(); permet d'initialiser le generateur de hasard.
c'est la fonction la plus portable.
cordialement
Merci bien pour vos réponses. Mon problème se complique malheureusement.
random() ou rand() génère une série de nombre pseudo-aléatoire. Juste un problème : cette fonction génère toujours les même nombres. Quand je lance mon programme utilisant cette fonction, il me sort toujours 142 (dans un cas précis). SI je lui fait sortir une série de nombre, les nombres sont défférents, mais la série ne varie pas quand je relance le programme. Par exemple, admettons le programme alea :
for(i==0; i<=3; i++){
a = rand()%200;
printf("%d-", a);
}
Il gén!re par exemple 1-123-34-198 a chaque fois que je le lance.
Sous windows, la fonction randomize() initialisait la génération de nombres aléatoires, de facon a obtenir une série différence a chaque lancement du programme. Existe t il la encore une fonction équoivalente dans stdlib.h? ou sans une autre bib'
Meci et A+
random() ou rand() génère une série de nombre pseudo-aléatoire. Juste un problème : cette fonction génère toujours les même nombres. Quand je lance mon programme utilisant cette fonction, il me sort toujours 142 (dans un cas précis). SI je lui fait sortir une série de nombre, les nombres sont défférents, mais la série ne varie pas quand je relance le programme. Par exemple, admettons le programme alea :
for(i==0; i<=3; i++){
a = rand()%200;
printf("%d-", a);
}
Il gén!re par exemple 1-123-34-198 a chaque fois que je le lance.
Sous windows, la fonction randomize() initialisait la génération de nombres aléatoires, de facon a obtenir une série différence a chaque lancement du programme. Existe t il la encore une fonction équoivalente dans stdlib.h? ou sans une autre bib'
Meci et A+
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
9 juin 2004 à 20:12
9 juin 2004 à 20:12
ReSalut
c'est effectivement un problème d'initialisation
du générateur pseudo-aléatoire
là dessous c'est un exemple fourni par borland
qui devrait marcher partout
A+
c'est effectivement un problème d'initialisation
du générateur pseudo-aléatoire
là dessous c'est un exemple fourni par borland
qui devrait marcher partout
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) { int i; time_t t; srand((unsigned) time(&t)); printf("Ten random numbers from 0 to 99\n\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); return 0; }
A+