CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

valeur au hazard en c

Le_sims01
Le_sims01
Niveau 10
07 janvier 2004 à 18:27:18

salut,

je voudrai savoir comment on peut attribuer à une variable une valeur au hazard ?

et comment fait on pour délimité cette valeur entre deux nombres ? ?

par exemple, val= valeur au hazard entre 1 et 1000

merci

Le_sims01
Le_sims01
Niveau 10
07 janvier 2004 à 18:30:38

" et" c´est && mais " ou" c´est quoi deja?

DasHuhn
DasHuhn
Niveau 10
07 janvier 2004 à 18:37:33

RAND(3) Manuel du programmeur Linux RAND(3)

NOM
rand, srand - Generateur de nombres aleatoires.

SYNOPSIS
#include < stdlib.h>

int rand ( void);

void srand ( unsigned int seed);

DESCRIPTION
La fonction rand() renvoie un entier pseudo-aleatoire
entre 0 et RAND_MAX.

La fonction srand() utilise son argument comme " graine"
pour la generation d´une nouvelle sequence de nombres
pseudo-aleatoires, qui seront fournis par rand(). Ces
sequences sont reproductibles en appelant srand() avec la
meme valeur de graine.

Si aucune graine originale n´est fournie, la fonction
rand() commence en utilisant la valeur 1.

VALEUR RENVOYEE
La fonction rand() renvoie un nombre entier entre 0 et
RAND_MAX. La fonction srand() ne renvoie aucune valeur.

NOTES
Les versions de rand() et srand() de la bibliotheque C de
Linux utilisent le meme generateur de nombres aleatoires
que random() et srandom(), ainsi les bits de poids faibles
sont tout aussi imprevisibles que les bits de poids forts.
Ceci n´est pas le cas avec les anciennes implementations
de rand(), ou les bits de poids faibles n´etaient pas
" aussi aleatoires" que ceux de poids forts.

Dans Numerical Recipes in C: The Art of Scientific Comput-
ing ( William H. Press, Brian P. Flannery, Saul A. Teukol-
sky, William T. Vetterling; New York: Cambridge University
Press, 1990 ( 1st ed, p. 207)), le commentaire suivant
apparait :
" Si vous desirez engendrer un entier aleatoire
entre 1 et 10, vous devez toujours proceder en
utilisant les bits de poids forts, comme dans :

j=1+(int) ( 10.0*rand()/(RAND_MAX+1.0));

et jamais ainsi :

j=1+(rand() % 10);

( car cette derniere version utilise les bits de
poids faibles)."

La generation de nombres aleatoires est un domaine com-
plexe. Le livre Numerical Recipes in C ( reference
ci-dessus) fournit une excellente presentation pratique
d´un generateur aleatoire dans le chapitre 1 ( Random Num-
bers).

Pour une discussion plus theorique, qui aborde egalement
en profondeur d´autres domaines, voir le chapitre 3
( Random Numbers) du livre de Donald E. Knuth The Art of
Computer Programming, volume 2 ( Seminumerical Algorithms),
2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing
Company, 1981.

[NDT] : Les 3 volumes de " Art of Computer Programming"
n´existent pas en version francaise a ma connaissance.
C´est neanmoins un ouvrage que je recommande fortement,
meme si la lecture en version anglaise le rend un peu
aride...

Je ne sais pas si " Numerical Recipes in C" est disponible
en traduction francaise.

CONFORMITE
SVID 3, BSD 4.3, ISO 9899

VOIR AUSSI
random(3), srandom(3), initstate(3), setstate(3)

TRADUCTION
Christophe Blaess, 1997.

GNU 5 Novembre 1996 RAND(3)

Pour le ou logique c´est || ( deux barres)

oxalys
oxalys
Niveau 2
07 janvier 2004 à 18:40:17

rand()%100 te donnera une valeur de 0 à 100 pour ton cas il faut faire un rand()%1000 + 1;

pour le OR c est ||

oxalys
oxalys
Niveau 2
07 janvier 2004 à 18:42:24

on a été plus rapide que moi ( et plus complet...)

Altonfrere
Altonfrere
Niveau 10
07 janvier 2004 à 19:01:32

le ET et le OU c

Altonfrere
Altonfrere
Niveau 10
07 janvier 2004 à 19:04:05

mer....de :)

le ET et le OU ca dépend lequel tu veux utiliser :

ET et OU logique c´est bien && et ||
mais l´opérateur de bits ET et OU c´est un seul caractère : & et |

pour le rand() si tu veux par exemple borner la valeur retournée ( par une valeur puissance de 2) il est beaucoup plus rapide d´utiliser le & :

pour une valeur entre 0 et 255 ( =256-1)
rand() % 256 < => rand() & 0xFF

Le_sims01
Le_sims01
Niveau 10
07 janvier 2004 à 19:04:40

merci pour votre aide a tous,

mais pas reussit, pour le moment j´utilise que < stdio.h> alors c´est un peu chaud pour le moment

MathieuN7
MathieuN7
Niveau 10
08 janvier 2004 à 13:15:22

salut tu inclus stdlib ( je crois) et tu te crées une fonction myrand, qui va renvoyer un nombre aléatoire:

int myrand(int a,int b)
{
return ( rand()%(b-a+1))+a;
}

/ !\Il fait écrire cette ligne à la première ligne de ta fonction main() pour que ça marche bien:
srand(time(NULL));

et ensuite, pour prendre une valeur aléatoire nimporte où ds ton prog, tu fais:

start = myrand(x,y);

Tu remplaces x et y par tes deux " bornes", c´est à dire si tu veux un nombre entre 1 et 1000 tu tapes:

start = myrand(1,1000);

Voilà, j´espère que c´est correct, car je suis novice :-)))

allez @+ et bon courage!

DasHuhn
DasHuhn
Niveau 10
09 janvier 2004 à 18:56:01

Précisions -> ´man random´

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment