Fonction rand (), srand () en langage C

1. Nombre aléatoire généré par rand ():

  • rand (): Génère un nombre aléatoire et renvoie un entier pseudo-aléatoire compris entre 0 et RAND_MAX (32767).
  • Bien que la fonction rand () puisse générer un nombre aléatoire, ce n'est pas un nombre aléatoire réel, mais un nombre pseudo-aléatoire.

Le soi-disant «nombre pseudo-aléatoire» se réfère non pas à un faux nombre aléatoire, mais à un nombre aléatoire dans un état hypothétique obtenu par un certain algorithme. L'ordinateur ne peut générer que des nombres aléatoires relatifs, et ces nombres aléatoires sont à la fois aléatoires et réguliers. , Une partie obéit à certaines lois et l'autre n'obéit à aucune loi

  • La fonction rand () doit appeler la fonction srand (seed) lorsqu'elle est utilisée, c'est-à-dire pour fournir une graine. Si srand () n'est pas utilisé, le système attribuera automatiquement une valeur à la graine, c'est-à-dire srand (1).
  • Besoin d'introduire le fichier d'en-tête <stdlib.h> lors de l'appel de rand () et srand ()

2. rand () génère un nombre aléatoire dans une plage

Dans le développement réel, nous avons souvent besoin d'un nombre aléatoire dans une certaine plage, donc notre méthode courante consiste à prendre l'opération de reste et à effectuer une opération d'addition.

  • Pour générer un nombre aléatoire entre 0 et 99, l'utilisation est la suivante:

int num = rand ()% 100;

  • Pour générer un nombre aléatoire compris entre 1 et 100, l'utilisation est la suivante:

int num = rand ()% 100 +1

  • Pensez si nous aimons générer un nombre aléatoire 80-120

int num = rand ()% 41 +80

//用代码演示一下 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>

#include<stdlib.h>
int main(){
    
    
	for (int i = 0; i < 20; i++){
    
    
		int num = rand() % 41 + 80;
		printf("%d\t",num);
	}
	system("pause");
	return 0;
}
//运行结果为
80      97      100     94      102     101     119     82      105     108     86      99      114     97      119
        120     82      91      110     104     请按任意键继续. . .

3 fonction srand ()

  • Le fichier d'en-tête requis par la fonction srand () est toujours: <stdlib.h>
  • prototype de la fonction srand (): void srand (usigned int seed);
  • La fonction srand () consiste à initialiser le générateur de nombres aléatoires. Le générateur de nombres pseudo-aléatoires est initialisé avec les paramètres passés comme germe.

Si la même graine est utilisée, le même nombre aléatoire apparaîtra après la fonction rand (). Nous avons mentionné le srand par défaut (1) ci-dessus. Utilisez directement 1 pour initialiser la graine, et le nombre aléatoire obtenu est toujours pseudo-aléatoire.

  • Dans le développement réel, nous pouvons utiliser le temps comme paramètre. Tant que l'heure du semis est différente à chaque fois, les graines générées seront différentes et le nombre aléatoire final sera différent. Habituellement, nous utilisons
    la fonction de temps dans le fichier d'en-tête <time.h>. Un temps précis à la seconde peut être utilisé comme graine.
//我们在代码中实现随机数结果
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
int main(){
    
    
	srand(time(0));
	for (int i = 0; i < 20; i++){
    
    
		int num = rand() % 41 + 80;
		printf("%d\t",num);
	}
	system("pause");
	return 0;
}
  • Résultats de la première manche
103     95      113     118     89      91      83      92      99      92      117     97      91      82      97
        91      83      89      91      109     请按任意键继续. . .
  • Résultats de la deuxième manche
81      80      85      84      114     96      110     107     102     83      83      109     113     96      90
        82      105     102     81      114     请按任意键继续. . .


Je suppose que tu aimes

Origine blog.csdn.net/supermanman_/article/details/109201869
conseillé
Classement