定义一个函数 randN1N2(int rN1, int rN2 )。该函数有两个整型的输入参数 rN1 和 rN2,其中,rN1 <= rN2。该函 数的功能是生成 rN1 到 rN2 之间均匀分布的随机整数,该函数的返回值类型是整型。每调用一次该函数,函数 返回一个 rN1 至 rN2 之间的随机整数。 4) 定义一个函数 randOper4( )。该函数没有输入参数,函数的返回类型是字符型。该函数内部调用上述 randN1N2( ) 函数。每调用一次函数 randOper4( ),随机返回 ’+’、 ’-’、 ’*’、 ’/’ 四个字符中的其中一个。 5) 定义一个函数 randLmt100( )。该函数没有输入参数,函数的返回类型是整型。该函数内部调用上述 randN1N2( ) 函 数。每调用一次函数 randLmt100( ),返回一个 0-99 之间的随机整数
时间: 2024-01-21 13:16:02 浏览: 65
下面是代码实现:
```cpp
#include <cstdlib>
#include <ctime>
using namespace std;
int randN1N2(int rN1, int rN2) {
srand(time(NULL)); // 用当前时间作为种子,避免每次生成的随机数都一样
return rand() % (rN2 - rN1 + 1) + rN1; // 生成 rN1 到 rN2 之间的随机整数
}
char randOper4() {
int randNum = randN1N2(1, 4); // 生成 1-4 之间的随机整数
switch (randNum) {
case 1:
return '+';
case 2:
return '-';
case 3:
return '*';
case 4:
return '/';
}
}
int randLmt100() {
return randN1N2(0, 99); // 生成 0-99 之间的随机整数
}
```
相关问题
定义一个函数 randN1N2(int rN1, int rN2 )。该函数有两个整型的输入参数 rN1 和 rN2,其中,rN1 <= rN2。该函 数的功能是生成 rN1 到 rN2 之间均匀分布的随机整数,该函数的返回值类型是整型。每调用一次该函数,函数 返回一个 rN1 至 rN2 之间的随机整数。
好的,这是一个简单的函数,可以使用 C++ 的标准库中的随机数生成器来实现。以下是函数的代码实现:
```cpp
#include <random>
int randN1N2(int rN1, int rN2) {
// 使用随机数生成器
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(rN1, rN2);
// 生成随机数并返回
return dis(gen);
}
```
该函数使用了 C++11 中的 mersenne_twister_engine 作为随机数生成器,并使用 uniform_int_distribution 来生成均匀分布的随机整数。每次调用该函数,都会生成一个 rN1 到 rN2 之间的随机整数并返回。
2) 定义函数int randN1N2(int N1, int N2),该函数的功能是:生成并返回一个[N1, N2]之间均匀分布的随机整数,其中形参需满足N1 <= N2。
下面是实现该函数的示例代码:
```c++
#include <cstdlib>
int randN1N2(int N1, int N2) {
return rand() % (N2 - N1 + 1) + N1;
}
```
该函数首先利用C++中的rand函数生成一个[0, RAND_MAX]之间的随机整数,然后将其映射到[N1, N2]区间内。具体来说,将该随机数对区间长度(N2 - N1 + 1)取模,再加上N1,即可得到所需的随机整数。注意,这里使用%运算符求模,而不是除法运算,是因为%运算符可以保证余数始终为正数,从而保证生成的随机数在[N1, N2]之间。
阅读全文