[C]Génération les memes valeurs aléatoires
Fermé
Sportif_c
-
11 juil. 2011 à 12:31
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 - 11 juil. 2011 à 17:21
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 - 11 juil. 2011 à 17:21
A voir également:
- [C]Génération les memes valeurs aléatoires
- Génération processeur amd - Guide
- Excel nombre de valeurs différentes ✓ - Forum Excel
- Branchement xbox première génération ✓ - Forum Jeux vidéo
- Excel fonction cherche plusieurs valeurs ✓ - Forum Excel
- Sql max entre 2 valeurs - Forum Programmation
5 réponses
bikiew
Messages postés
84
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
11 juillet 2011
22
11 juil. 2011 à 13:39
11 juil. 2011 à 13:39
pourquoi voudrais tu generer les memes valeurs aleatoires ? le principe est justement que ca soit aleatoire donc toujours different.
si c'est pour resoudre un probleme, creer une fonction,etc.. je pense que tu prends le probleme du mauvais cote, donne plus de precision dans quel but tu veux faire ca et on pourra t'aider
si c'est pour resoudre un probleme, creer une fonction,etc.. je pense que tu prends le probleme du mauvais cote, donne plus de precision dans quel but tu veux faire ca et on pourra t'aider
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
11 juil. 2011 à 13:48
11 juil. 2011 à 13:48
Essaye justement sans utiliser srand.
Avec rand uniquement.
https://nicolasj.developpez.com/articles/libc/hasard/#LIII
Avec rand uniquement.
https://nicolasj.developpez.com/articles/libc/hasard/#LIII
Merci pour vos réponses.
Mon programme a cete forme
J'ai essayé avec et sans la fonction srand() ça ne fonctionne pas.
Des idées?
Merci encore.
Mon programme a cete forme
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define nbreEssaies 1000
int my_rand (void);
int main (void)
{
int i, j;
int tab[10];
for(j=0;j<nbreEssaies;j++)
{
for (i = 0; i<10; i++)
{
tab[i]=my_rand();
}
}
return (EXIT_SUCCESS);
}
J'ai essayé avec et sans la fonction srand() ça ne fonctionne pas.
Des idées?
Merci encore.
adns
Messages postés
1094
Date d'inscription
vendredi 23 février 2007
Statut
Membre
Dernière intervention
27 mars 2012
153
11 juil. 2011 à 14:54
11 juil. 2011 à 14:54
Bonjour ,
cela nous aiderais plus si tu nous expliquais plus clairement ton besoin !
Adns
cela nous aiderais plus si tu nous expliquais plus clairement ton besoin !
Adns
Je souhaiterais générer aléatoires 10 valeurs et le stocker dans un tableau.
Le problème qu'il y a à chaque lancement de programme, j'ai des nouveaux valeurs.
Est ce possible d'avoir les memes valeurs à chaque lancement? Sinon comment après pourvoir utiliser des valeurs sachant que à chaque exécution on aura une autre liste?
Le problème qu'il y a à chaque lancement de programme, j'ai des nouveaux valeurs.
Est ce possible d'avoir les memes valeurs à chaque lancement? Sinon comment après pourvoir utiliser des valeurs sachant que à chaque exécution on aura une autre liste?
adns
Messages postés
1094
Date d'inscription
vendredi 23 février 2007
Statut
Membre
Dernière intervention
27 mars 2012
153
11 juil. 2011 à 15:21
11 juil. 2011 à 15:21
Je ne sais pas si j'ai bien compris le problème mais je pourrais te conseiller de faire quelque chose comme cela (syntaxe non vérifiée)
Ainsi tu génère un entier aléatoire qui sera toujours compris en 0 et 10.
Adns
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define nbreEssaies 1000
int my_rand (void);
int Ten(double rand){
rand = (int) rand;
if(rand>10){
rand = rand/10;
Ten(rand);
}else{
return rand
}
}
int main (void)
{
int i, j;
int tab[10];
for(j=0;j<nbreEssaies;j++)
{
for (i = 0; i<10; i++)
{
tab[i]=Ten(rand());
}
}
return (EXIT_SUCCESS);
}
Ainsi tu génère un entier aléatoire qui sera toujours compris en 0 et 10.
Adns
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
11 juil. 2011 à 15:24
11 juil. 2011 à 15:24
déjà, il nous manque my_rand().
srand s'initialise une seule fois pour tout le programme. Normalement, le conportement que tu décris est celui par défaut. Donne nous l'ensemble de ton code, et pas juste un petit bout qui ne nous avance à rien.
srand s'initialise une seule fois pour tout le programme. Normalement, le conportement que tu décris est celui par défaut. Donne nous l'ensemble de ton code, et pas juste un petit bout qui ne nous avance à rien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
Modifié par Leviathan49 le 11/07/2011 à 17:08
Modifié par Leviathan49 le 11/07/2011 à 17:08
Mmh tu as repris un bout du programme du lien que je t'ai passé mais il en manque un bout. Avec ton programme cela donne
Ce programme devrait produire A CHAQUE LANCEMENT DU PROGRAMME les même 10 chiffres aléatoire.
Si comme dans ton programme tu génère 10 000 nombres aléatoires, ce seront les même 10 000 nombres aléatoire à chaque fois.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main (void)
{
int i, j;
int tab[10];
for (i = 0; i<10; i++)
{
tab[i]=rand();
}
return 0;
}
Ce programme devrait produire A CHAQUE LANCEMENT DU PROGRAMME les même 10 chiffres aléatoire.
Si comme dans ton programme tu génère 10 000 nombres aléatoires, ce seront les même 10 000 nombres aléatoire à chaque fois.
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
Modifié par Leviathan49 le 11/07/2011 à 17:22
Modifié par Leviathan49 le 11/07/2011 à 17:22
Pour preuve:
Ce programme renvoie toujours la même suite de nombre. On peut faire varier la suite de nombre avec srand.
Du moment que la valeur du srand ne change pas entre deux exécution du programme les chiffres générés reste les mêmes.
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int i;
for (i = 0; i<10; i++)
{
printf("%d\n",rand());
}
return 0;
}
Ce programme renvoie toujours la même suite de nombre. On peut faire varier la suite de nombre avec srand.
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int i;
srand(7777);
for (i = 0; i<10; i++)
{
printf("%d\n",rand());
}
return 0;
}
Du moment que la valeur du srand ne change pas entre deux exécution du programme les chiffres générés reste les mêmes.