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 请按任意键继续. . .