Maison  >  Article  >  Comment générer des nombres aléatoires en langage C

Comment générer des nombres aléatoires en langage C

清浅
清浅original
2019-02-23 15:31:1694691parcourir

La fonction rand() peut être utilisée en langage C pour générer des nombres aléatoires, qui peuvent générer des entiers aléatoires entre 0 et RAND_MAX (32767). Les nombres aléatoires sont contrôlés par des graines aléatoires. pour définir les valeurs de départ du nombre aléatoire. La valeur de départ du nombre aléatoire par défaut est 1 ; si vous souhaitez générer un entier aléatoire compris entre 1 et 100, vous devez utiliser "rand()%100".

Comment générer des nombres aléatoires en langage C

[Tutoriel recommandé : Tutoriel langage C]

En langage C, des nombres aléatoires peuvent être générés en utilisant la fonction rand. La fonction rand génère des entiers dans un ordre spécifié. Cependant, le caractère aléatoire généré en langage C n’est pas vraiment aléatoire et peut parfois être appelé nombres pseudo-aléatoires.

Avant d'utiliser rand() pour générer des nombres aléatoires, vous devez utiliser la fonction d'initialisation srand (graine non signée) du générateur aléatoire pour initialiser la séquence de nombres pseudo-aléatoires, également appelée graine aléatoire, ce qui signifie. que si la graine fournie est la même à chaque fois, alors les valeurs aléatoires générées à chaque tour sont également les mêmes, elles sont donc appelées nombres pseudo-aléatoires, donc une valeur de graine différente doit être fournie à chaque fois pour obtenir un caractère aléatoire complet . Habituellement, en langage C, nous utilisons la fonction time time ( null) comme graine, car la valeur du temps est différente chaque seconde

Exemple :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(1);
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
Le résultat est : 8, 9, 9, 1, 7, 5, 5, 10, 1, 0,

Le résultat ci-dessus est le même quel que soit le nombre de fois où il est exécuté. la graine aléatoire est 1

Mais lorsque nous remplaçons la valeur de la graine par La situation avec le temps (null) est différente


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
Les résultats sont les suivants : 6, 3 , 4, 5, 5, 9, 8, 10, 10, 4

cliquez à nouveau : 6, 4, 2, 4, 3, 2, 5, 1, 2, 9

En raison de l'effet du temps (nul) ici, la graine ne cesse de changer, c'est-à-dire que de nouveaux sont constamment générés. Nombres aléatoires

Articles connexes recommandés : Comment. pour générer des nombres aléatoires en javascript

Résumé : Ce qui précède est le résumé de cet article. C'est tout, j'espère que cela sera utile à tout le monde

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn