设计一“真随机数”函数:int MyRandom(int n,int m); 功能:n<m,随机产生n~m之间的整数,要求每次调用返回一随机数,均匀分布在n~m之间,注意程序每次运行,其产生的随机数是不同的。
时间: 2024-03-24 08:38:36 浏览: 89
数据的随机生成函数random number
好的,我来设计一个“真随机数”函数。
首先,我们需要利用系统时间作为随机种子,以保证每次程序运行时产生的随机数是不同的。然后,我们可以利用rand()函数生成一个0到RAND_MAX之间的随机数,再将其映射到n~m之间的整数。
具体实现如下:
```c++
#include <cstdlib>
#include <ctime>
int MyRandom(int n, int m) {
srand((unsigned) time(NULL)); // 以系统时间作为随机种子
int rand_num = rand(); // 生成0到RAND_MAX之间的随机数
int range = m - n + 1; // 计算n~m之间的整数范围
int result = n + rand_num % range; // 映射到n~m之间的整数
return result;
}
```
这样,每次调用MyRandom函数时,都能够返回一个均匀分布在n~m之间的随机整数。
阅读全文