各位小伙伴大家好,本阶段文章主要用在学习交流中~~请多指教
随机函数 :srand()
1.1 概念说明
Srand 是C++标准库中的一个函数,它用于设置随机数生成器的种子。
随机数生成器是一个算法,它生成一系列看似随机的数字,但实际上这些数字是由一个确定的算法生成的,并且这个算法的输出是依赖于一个初始的的种子值的。
种子值不同,生成的随机数序列也就不同。
在C++中,srand 函数通常在 main 函数的开始处被调用一次,以便在程序的运行过程中使用相同的种子值来初始化随机数生成器。然后,你可以使用rand函数来生成随机数。
1.2 函数使用说明
头文件
需要使用包含 头文件 来使用srand 和 rand 函数。
# include <cstdlib>
设置种子
使用srand函数来设置随机数生成器的种子。通常,我们使用当前时间作为种子,以确保每次程序运行时都能得到不同的随机数序列。你可以使用 time 函数来获取当前时间,然后将它转换为 unsingned int 或 unsingned long 类型传递给srand。
unsingned int seed = static_cast<unsigned int>(time(0));
srand(seed);
这里,time(0) 返回自Unix纪元(1970年1月1日 00:00:00 UTC)以来的秒数。
将这个值转换Wie unsingned int 并传递给 srand ,可以确保每次程序运行时都会有一个不同的种子值。
1.3 生成随机数
一旦你设置了种子,就可以使用rand 函数来生成随机数了。rand 函数返回一个伪随机数,通常是一个在 0 到 RAND_MAX之间的整数。
int random_number = rand()
案例演示:
下面是一个完整的示例代码,演示了如何在 C++中使用srand 和 rand 函数来生成随机数:
#include <iostream>
#include <cstdlib> // 包含 srand 和 rand
#include <ctime> // 包含time
int main(){
// 使用当前时间作为随机数生成器的种子
unsigned int seed = static_cast<unsigned int>(time(0));
srand(seed);
// 生成并输出 10 个随机数
for (int i=0;i<10;i++){
int random_number = rand();
std::cout<<"随机数"<<i + 1 <<": "<<random_number<<std::endl;
}
return 0 ;
}
在上述例子中,程序每次运行时都会输出不同的随机数序列,因为种子值是基于当前时间的。
注意:rand 生成的随机数并不适用于需要高度随机性的所有场合,特别是在密码学应用中。在这些情况下,你可能需要使用更复杂的随机数生成库或算法!