不使用C++11,用C++随机生成时间戳
时间: 2023-11-14 16:23:15 浏览: 43
在C++中,我们可以使用`time()`函数来获取当前系统时间的时间戳。可以使用以下代码生成随机时间戳:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
srand(time(NULL)); // 初始化随机数生成器
time_t timestamp = rand() % 10000000000; // 生成 0 到 9999999999 范围内的随机数
std::cout << "随机时间戳:" << timestamp << std::endl;
return 0;
}
```
上述代码中,我们使用`srand()`函数初始化随机数生成器,以便每次运行程序时都能生成不同的随机数。然后,我们使用`time()`函数获取当前系统时间的时间戳,并用`rand()`函数生成一个0到9999999999之间的随机数。最后,我们将生成的随机数作为时间戳输出到控制台上。
相关问题
c++ rand随机数生成(随机种子设置)
在C++中,使用rand()函数可以生成伪随机数。为了让每次运行程序生成的随机数都不一样,需要设置随机数种子,可以使用srand()函数来设置。
例如,如果想要生成一个0到99的随机数,可以使用以下代码:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 设置随机数种子
srand(time(NULL));
// 生成0到99的随机数
int random_num = rand() % 100;
std::cout << "随机数:" << random_num << std::endl;
return 0;
}
```
在上面的代码中,我们使用time(NULL)函数来获取当前时间戳作为随机数种子。每次运行程序时,时间戳都不同,因此生成的随机数也不同。然后使用rand()函数生成一个0到99之间的随机数。最后输出生成的随机数。
使用c++随机产生10000个不同的数
下面是使用C语言随机生成10000个不同数的示例代码:
```C
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 100000
int main()
{
int nums[MAX_NUM];
int count = 0;
int num;
// 使用时间戳作为随机数发生器的种子
srand(time(NULL));
while(count < MAX_NUM)
{
num = rand() % MAX_NUM; // 生成一个0到MAX_NUM-1的随机数
// 判断该数是否已经存在
int flag = 0;
for(int i = 0; i < count; i++)
{
if(nums[i] == num)
{
flag = 1; // 已经存在
break;
}
}
if(!flag)
{
nums[count++] = num; // 未存在,加入数组
}
}
// 输出结果
for(int i = 0; i < MAX_NUM; i++)
{
printf("%d ", nums[i]);
if((i+1) % 50 == 0) printf("\n"); // 每行输出50个数,方便观察
}
return 0;
}
```
代码解析:
首先定义一个数组`nums`用于存储生成的数,计数器`count`用于统计已经生成的数的个数。同时定义一个常量`MAX_NUM`表示要生成的不同数的个数,这里设定为100000。
使用`srand(time(NULL))`函数将时间戳作为随机数发生器的种子,确保每次运行程序生成的数不同。然后使用`while`循环生成MAX_NUM个不同的数,其中生成一个0到MAX_NUM-1的随机数,使用一个循环遍历已经生成的数,如果该数已经存在,则将flag变量设为1表示已经存在,否则将该数加入数组中,计数器count加1。
最后使用`for`循环遍历数组,输出所有生成的不同的数。为了方便观察,每输出50个数就换行。