Fct Random

SkanKeur Messages postés 3 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 10 novembre 2004 - 10 nov. 2004 à 19:57
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 10 nov. 2004 à 23:07
Bonjour, est ce quelqu'un pourrait me fournir le code en C dune fontion Random de type :

int Random(int N);

N : valeur max du chiffre généré au hasard.
La fct retourne le chiffre généré.

Merci sa serai sympa de votre part ^^

6 réponses

jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006
10 nov. 2004 à 21:38
nombre = MIN + rand() % (MAX+1-MIN)

et t'aura un joli nombre compris entre MIN et MAX
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
10 nov. 2004 à 22:13
Perso, le nb aléatoire chez moi ça marchait pas (il n'y avait pas les anciennes fct de génération aléatoire sous dev :() alors g du créer la mienne, la voici (récursivité) :

int getRandom(int maxValue) {

  time_t timming;
  int tps = time(&timming);

  if ((tps % maxValue) == 0)
   return maxValue;

  else
   return getRandom(maxValue - 1);
 }


il faut biensur inclure le fichier time.h :-))

Gendal67, à votre service !
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
10 nov. 2004 à 22:34
haha
time.h
oui c'est sur qu'avec ces fonctions pourries ca sera aléatoire ;)

jerome, ton truc marche pas tout seul comme ca.avant il faut que tu fasses
srand( (unsigned)time( NULL ) );
pour initialiser la fonction, je pense que c'est pour ca que ca marchait pas chez toi gendal.

PS: bon d'acc ca aussi ca utilise time... enfin bon, sur PC c'est EXTREMEMENT dur d'avoir deds nombres aléatoires, la tout ce qu'on a c'est du PSEUDO-aléatoire.
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
10 nov. 2004 à 22:43
encore un truc, rand() retourne un nombre entier.
si tu veux un nbre avec n chiffres apres la virgule, fais:

float nbre=(rand()%pow(10,n))/pow(10,n));
ou plus clairement (rand()%1000)/1000

ca divisera par 1000 un nbre compris entre 0 et 1000 -> tout plein de chiffres apres la virgule!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SkanKeur Messages postés 3 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 10 novembre 2004
10 nov. 2004 à 22:49
Merci :)

et un code pour une fonction ki décale une chaine de caractere ver la gauche? ex : "salut" devien "alut s" puis "lut sa" ....

merci encore
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
10 nov. 2004 à 23:07
ben déja ton propre exemple ne marche pas vraiement pasque tu rajoute un espace...ca ca dépend de ce que tu veux faire.

bon t'as le choix: ta chaine c'est une char* ou une char[]?
admettons que c'et char var[126]="hello";

int L=strlen(var);
while(1){//autant que tu veux !
char temp=var[0];//tu enregistre le premier carac ds un tampon
for (int a=0;a!=L-1;a++)
var[a]=var[a+1];// tu décales tout

var[L]=temp;//ta premiere valeur devient la derniere
}

PS: programmé a l'arrache, pas bug-free du tt ;)
attend vos commentaire.
0
Rejoignez-nous