Fonction random
Fermé
AleuiA
-
22 nov. 2009 à 23:02
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 24 nov. 2009 à 23:35
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 24 nov. 2009 à 23:35
A voir également:
- Fonction random
- Fonction si et - Guide
- Fonction somme excel - Guide
- Fonction moyenne excel - Guide
- Fonction trier excel - Guide
- Fonction couleur excel - Guide
4 réponses
nobie-cs
Messages postés
155
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
15 mai 2010
17
22 nov. 2009 à 23:17
22 nov. 2009 à 23:17
pour le random il faut utiliser % pas / voici un exemple
#include <stdio.h> #include <time.h> int main(int argc, char *argv[]) { int l; srand (time (NULL)); l=(rand()%5); printf("%d",l); getchar(); return 0; } }
oui j'ai aussi essayé cette fonction qui marche mais le probleme reste le meme:
int i,l;
int main()
{
for(i=0;i<10;i++)
{
srand(time(NULL));
l = rand()%2;
printf("%d",alea);
}
}
les 10 random sont identiques ...
int i,l;
int main()
{
for(i=0;i<10;i++)
{
srand(time(NULL));
l = rand()%2;
printf("%d",alea);
}
}
les 10 random sont identiques ...
nobie-cs
Messages postés
155
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
15 mai 2010
17
22 nov. 2009 à 23:30
22 nov. 2009 à 23:30
tu doit faire srand(time(NULL)); on dort de la boucle je sait pas vraiment pourquoi :(
#include <stdio.h>
#include <time.h>
#include <stdio.h>
#include <time.h>
srand(time(NULL)); for(i=0;i<10;i++) { l = rand()%2; printf("%d",l); }
a oui effectivement ....
je demanderait a mes profs pourquoi .... interressant ... merci de t'être posé la question et d'avoir résolu mon problème !
je demanderait a mes profs pourquoi .... interressant ... merci de t'être posé la question et d'avoir résolu mon problème !
nobie-cs
Messages postés
155
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
15 mai 2010
17
22 nov. 2009 à 23:35
22 nov. 2009 à 23:35
sa te dérange si tu poste la réponse des prof :) sa sera sympa en plus peut tu change le statut du poste
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
23 nov. 2009 à 06:28
23 nov. 2009 à 06:28
La réponse est très simple.
srand() est un générateur de nombres pseudo-aléatoires. On met le seed en argument et on obtiendra via rand les différents nombres du générateur qui respecte l'équiprobabilité entre 0 et RAND_MAX. Si tu refais à chaque boucle srand, tu utiliseras un autre générateur ce qui ne te donnera aucune garantie. De plus la boucle est tellement rapide que time(NULL) te donnera la même valeur et donc la graine n'aura pas changé.
Il faut retenir qu'on initialise qu'une et une seule fois le générateur.
Cdlt
srand() est un générateur de nombres pseudo-aléatoires. On met le seed en argument et on obtiendra via rand les différents nombres du générateur qui respecte l'équiprobabilité entre 0 et RAND_MAX. Si tu refais à chaque boucle srand, tu utiliseras un autre générateur ce qui ne te donnera aucune garantie. De plus la boucle est tellement rapide que time(NULL) te donnera la même valeur et donc la graine n'aura pas changé.
Il faut retenir qu'on initialise qu'une et une seule fois le générateur.
Cdlt
ok Merci pour l'info; je repasserai surement sur le forum : Bubble en cours de cour de programmation ! ^^
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
24 nov. 2009 à 23:35
24 nov. 2009 à 23:35
héhé Bubble... Ce sera je pense ton premier exemple de très très mauvais algorithme, à ne jamais utiliser en pratique :)
23 nov. 2009 à 01:36
23 nov. 2009 à 06:25
C'est le contraire. Le modulo fonctionne mais ne respecte pas l'équiprobabilité puisque se bas sur les bits faibles.