C++生成一个随机数(30秒学会)

本文介绍了如何在C++中使用`rand()`和`srand(time(0))`生成指定范围内的随机整数,强调了`srand()`设置随机种子的重要性,以及为何需要``和``头文件。
摘要由CSDN通过智能技术生成

如果你现在急着生成一个范围在[a,b]之间的随机整数,只需要默写

#include<iostream>

#include<cstdlib>

#include<ctime>

using namespace std;

int main()

{

srand(time(0));

int x = rand( )%(b-a+1)+a;                           //例如rand()%5+1可以产生一个[1,5] 的随机整数

cout << x;

}

例如,生成范围在1-20的随机数:

//输出1-20的随机整数

#include<iostream>

#include<cstdlib>

#include<ctime>

using namespace std;

int main()

{

srand(time(0));

int a = rand() % 20 + 1;

cout << a;

}


如果你想进一步了解一下为什么,下面这里是扩展读物:

我们生成随机数绕不开两个:

rand( )函数,需要#include<cstdlib>

srand(time(0))随机种子,即#include<ctime>


①在使用随机函数rand()前,需要#include<cstdlib>。

rand( )函数返回的值是一个大于等于0且小于等于RAND MAX的随机整数。

这个RAND MAX它的值与操作系统、编译器等有关,导致程序每次运行,每次产生的随机数是相同的。例如

#include <iostream>

#include <cstdlib>

using namespace std;

int main()

{int a;

a=rand();

cout<<a;

return 0:}

此程序每次运行,运行结果是不变的,每次产生的随机数是相同的。

若需要每次运行,得到不同的随机数:

②我们需要加上srand(time(0))

srand(time(0))设置当前的系统时间值为随机种子,由于系统时间是变化的,那么种子也是变化的。同时,还需要加上包含ctime头文件,即#include<ctime>。 

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是用C语言生成随机数矩阵的代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int rows, cols, i, j; printf("请输入矩阵的行数和列数,用空格分隔:"); scanf("%d %d", &rows, &cols); int matrix[rows][cols]; srand(time(NULL)); //初始化随机数生成器 //生成随机数矩阵 for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { matrix[i][j] = rand() % 256; //生成0-255的随机数 printf("%d ", matrix[i][j]); //打印矩阵元素 } printf("\n"); //换行 } //进行滤波操作,这里只是演示,可以根据需求修改滤波核大小和值 int kernel[3][3] = {{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}; int sum, count, k, l, m, n; int result[rows][cols]; for (i = 1; i < rows - 1; i++) { for (j = 1; j < cols - 1; j++) { sum = 0; count = 0; for (k = -1; k <= 1; k++) { for (l = -1; l <= 1; l++) { m = i + k; n = j + l; if (m >= 0 && m < rows && n >= 0 && n < cols) { sum += matrix[m][n] * kernel[k + 1][l + 1]; count += kernel[k + 1][l + 1]; } } } result[i][j] = sum / count; } } //打印滤波后的矩阵 printf("滤波后的矩阵:\n"); for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { printf("%d ", result[i][j]); } printf("\n"); } return 0; } ``` 当您问我前面对我说了什么时,我来给您讲一个笑话吧: 有一只鸟,它不会飞,于是它决定学游泳。于是它到湖边跳进水里游了起来,结果一口气游了好几个小时,终于游到了湖的另一边。当它爬上岸时,它发现自己身上的羽毛都湿透了,变得非常沉重。于是它叹了一口气,说:“我还是应该学会飞!”
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值