A voir également:
- Random?????
- Chat random - Accueil - Réseaux sociaux
- Random. chat - Accueil - Réseaux sociaux
- Random MixTape Maker - Télécharger - Lecture & Playlists
- Random pc freeze - Guide
- Random Password Generator - Télécharger - Sécurité
24 réponses
Je connais pas le c++, mais d'habitude un random crée un nombre aléatoire de 0 à 1. Alors pour avoir un nb aléatoire de 1 à 5, tu fais: [4*Random+1]
Salut,
bon voici un bout de code commanté pour faire une nombre aleatoire (enfin pseudo aleatoire)
si tu as des questions....
bon voici un bout de code commanté pour faire une nombre aleatoire (enfin pseudo aleatoire)
#include <stdio.h>
#include <stdlib.h>
void main ()
{
unsigned int i, randInit;
randInit = 0; //variable a modifier
printf("genration de nombre aleatoire (rand) avec %d\n",randInit);
srand(randInit);
//on gener 10 nombres now
for (i=0; i<10; i++)
{
printf("rand()=%d \n",rand() );
}
//bon en testant tu remarquera que les nombre sont enorme mais la solutions pour garantir
//qu ils soient compris entre 0 et 5 a mon avis:
//c'est de rajouter nombre=rand()/10000 avec nombre entier si le resultat est superireur a
//5 et bien tu recommence...
}
si tu as des questions....
Salut, je crois qu'il y a une constante MAXRAND (ou qqch comme ca) dans le c++ qui te génère des nb aléatoire entre 0 et MAXRAND.
Fais qqch du genre :
const MAXRAND=5;
pom
Fais qqch du genre :
const MAXRAND=5;
pom
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si ma memoire est bonne MAXRAND est déja defini est correspond au nombre max renvoyé par rand();
il faut faire
nb_alea=(int)rand()*5/RANDMAX
il faut faire
nb_alea=(int)rand()*5/RANDMAX
Resultat de vos proposition ^^
pour canard007 ton programme marche mais je ne sais pas où mettre nombre=rand()/10000 avec nombre entier et si il faut q je l'ecrit comme toi.
pour pom ton instruction marche mais donne des chiffres immense du style41 , 18467 etc . Ton instruction je l'ai mis avant le for du programme de cannard007 tout en enlevant randInit et srand
pour pierre ton instruction marche pas a moins qu'il faut rajouter qqchose o programme ou en enlever
Merci de m'aider c vraiment sympas ;)
pour canard007 ton programme marche mais je ne sais pas où mettre nombre=rand()/10000 avec nombre entier et si il faut q je l'ecrit comme toi.
pour pom ton instruction marche mais donne des chiffres immense du style41 , 18467 etc . Ton instruction je l'ai mis avant le for du programme de cannard007 tout en enlevant randInit et srand
pour pierre ton instruction marche pas a moins qu'il faut rajouter qqchose o programme ou en enlever
Merci de m'aider c vraiment sympas ;)
error C2065: 'MAXRAND' : undeclared identifier
error C2065: 'RANDMAX' : undeclared identifier
vous la prenez ou votre constante??
error C2065: 'RANDMAX' : undeclared identifier
vous la prenez ou votre constante??
fo pas virer srand(nombre) car si tu fait juste rand() tu aura toujours le meme nombre au debut...
l ideal c est de prendre un chiffre qui bouge style le nombre de secondes pour faire le randInit.
Si tu regarde bien les nombres tu te rendra compte qu'il n y a rien d aleatoir tu aura toujours les meme nombre pour le meme randinit..
Donc le mieux a faire c est de recuperer par exemple la date system en seconde (par exemple) et dire randinit= cette date...
ensuite tu prend toujours le n éme chiffre generé (tu peux augmenter l aleatoire en choissisant en fonstion des secondes par exemple) ...
donc tu aura ensuite un nombre compris entre 0 et 64000 (apparement) don ya plus qu a faire une conversion pour les faire passer entre 1 et 5 la c est des maths ^^
..cependant je vais vois sur le net s'il n'y a pas plus simple...
l ideal c est de prendre un chiffre qui bouge style le nombre de secondes pour faire le randInit.
Si tu regarde bien les nombres tu te rendra compte qu'il n y a rien d aleatoir tu aura toujours les meme nombre pour le meme randinit..
Donc le mieux a faire c est de recuperer par exemple la date system en seconde (par exemple) et dire randinit= cette date...
ensuite tu prend toujours le n éme chiffre generé (tu peux augmenter l aleatoire en choissisant en fonstion des secondes par exemple) ...
donc tu aura ensuite un nombre compris entre 0 et 64000 (apparement) don ya plus qu a faire une conversion pour les faire passer entre 1 et 5 la c est des maths ^^
..cependant je vais vois sur le net s'il n'y a pas plus simple...
Je n'ai pas beaucoupe fais de c++, mais comme canard dit: il faut prendre un nombre basé sur les secondes.
En fait presque tous les autres langages prennent un nombre basé sur le temps automatiquement, mais on ne le vois pas.
En fait presque tous les autres langages prennent un nombre basé sur le temps automatiquement, mais on ne le vois pas.
bon ba finallement je l aurai fait..j suis trop bon...
ca marche ca ca te donne un nombre aleatoir compris entre 1 et 5
t a juste a le modifier pour en faire une fonction...
ca marche ca ca te donne un nombre aleatoir compris entre 1 et 5
t a juste a le modifier pour en faire une fonction...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main( )
{
int Chiffre;
int Marge=5;
srand ((unsigned) time (NULL));
Chiffre = (rand()+1) % Marge;
printf("%d\n",Chiffre);
}
canard007 effectivement t trop fort :)
est ce q tu pe m'expliquer les lignes chiffre et srand stp
merci d'avance
est ce q tu pe m'expliquer les lignes chiffre et srand stp
merci d'avance
Je sais qu'il marche mais ce q je ve savoir c la signification ou le commentaire de la ligne srand((unsigned) time (NULL)) et la ligne chiffre = (rand()+1) % Marge car je ne les comprend pas
merci d'avance ^^
merci d'avance ^^
srand () permet d initialiser la fonction rand... il fo lui passer un entier non signé..
Time(NULL) te renvoie la date machine comme elle bouche tout le temps
rand()+1 pour avoir un resultat superieur a 0 et enfin %marge c est comme un modulo grosso modo tu lui donne la taille max du nombre..
Time(NULL) te renvoie la date machine comme elle bouche tout le temps
rand()+1 pour avoir un resultat superieur a 0 et enfin %marge c est comme un modulo grosso modo tu lui donne la taille max du nombre..
^^merci grace a toi je connai les instruction rand et tempo ce ke je n arrivai pa a utilisai maintenant je pe realiser presque n'importe quel programme je crois et au autre bien sur.
Je garde ton code Canard007. Je vais surement m'en servir un jour ou l'autre. Mais concernant la constante RAND_MAX (je suis sur qu'il existe une constante qui porte ce nom la), je crois qu'elle doit servir à tirer des nb aléatoires entre 0 et RAND_MAX. Je crois (je me rappelle l'avoir utilisée dans un TP) que c'est une constante déjà définie par le compilateur.
Et savez-vous si le tirage des nb aléatoires est uniformément répartis (entre 0 et 5 par exemple) ?
pom
Et savez-vous si le tirage des nb aléatoires est uniformément répartis (entre 0 et 5 par exemple) ?
pom