Maison  >  Article  >  développement back-end  >  Que signifie la fonction srand(time(0)) ?

Que signifie la fonction srand(time(0)) ?

藏色散人
藏色散人original
2019-06-06 10:56:4830004parcourir

La bibliothèque standard définit un ensemble de classes et d'adaptateurs de moteurs de nombres aléatoires qui utilisent différentes méthodes mathématiques pour générer des nombres pseudo-aléatoires. La bibliothèque standard définit également un ensemble de modèles de distribution pour générer des nombres aléatoires selon différentes probabilités. Les noms des moteurs et des types de distribution correspondent à leurs propriétés mathématiques.

Que signifie la fonction srand(time(0)) ?

Mais aujourd'hui, nous aborderons un peu les connaissances les plus élémentaires.

L'ordinateur n'a aucun moyen de générer de vrais nombres aléatoires. Il utilise une simulation d'algorithme, donc vous n'appelez que rand, et les choses qui sortent sont les mêmes à chaque fois. Après avoir défini une graine, différents nombres peuvent être générés en fonction de la graine. Et comment s'assurer que les graines sont différentes ? Le plus simple est bien sûr d’utiliser un temps qui avance toujours.

srand(time(0)) ;//先设置种子
rand();//然后产生随机数

Srand est le nombre de graines aléatoires plantées. Les graines que vous plantez sont différentes à chaque fois, et les nombres aléatoires obtenus en utilisant Rand sont différents. Afin de planter une graine différente à chaque fois, Time(0) est utilisé pour obtenir la valeur de l'heure actuelle (car l'heure est différente à chaque instant).

srand(time(0)) ;Il s'agit de donner à cet algorithme une graine de démarrage, qui est le numéro de graine aléatoire de l'algorithme. Ce n'est qu'avec ce nombre que le nombre aléatoire peut être généré. Utilisez le nombre de secondes de 1970.1.1 à. le présent pour initialiser la graine de nombre aléatoire.

Cas de référence

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( void )
{
    int i;
    
    srand(time(0));
    
    /* 输出 10 个随机数. */
    for (i = 0; i < 10; i++)
        printf( "%6d/n", rand());
}

Résultat de sortie :

   22614
   15772
   30620
   24913
    7556
   31659
   27876
   27229
   25083
   16564

Recommandations associées : "Tutoriel vidéo C"

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