rand函数的范围:假设所要求数的范围不从一开始的时候这个函数怎么用呢?
答案:2 悬赏:30
解决时间 2021-01-16 13:22
- 提问者网友:川水往事
- 2021-01-16 07:27
rand函数的范围:假设所要求数的范围不从一开始的时候这个函数怎么用呢?
最佳答案
- 二级知识专家网友:不甚了了
- 2021-01-16 08:52
C/C++中 stdlib中的rand吗
srand((unsigned) time(NULL));
// low, high限制产生随机数范围
int GetRandomInteger(int low, int high)
{
int i;
double d;
d = (double)rand() / ((double)RAND_MAX + 1); //d的范围为0.0...~0.9...
i = (int)(d * (high - low + 1)); // i的范围为 0 ~ high-low
return (i+low); //i+low限制范围
}
java中的话
private static Random RAND = new Random();
public static int getRandNumInRange(int low, int high) {
if(high int temp = high;
high = low; low = temp;
}
int i = 0;
double d = 0.0;
// 获得一范围为 0.0...~0.9...的随机双精度数
d = RAND.nextDouble();
// 限制范围到low~high
i = (byte)(d * (high - low + 1)+low);
return i;
}
srand((unsigned) time(NULL));
// low, high限制产生随机数范围
int GetRandomInteger(int low, int high)
{
int i;
double d;
d = (double)rand() / ((double)RAND_MAX + 1); //d的范围为0.0...~0.9...
i = (int)(d * (high - low + 1)); // i的范围为 0 ~ high-low
return (i+low); //i+low限制范围
}
java中的话
private static Random RAND = new Random();
public static int getRandNumInRange(int low, int high) {
if(high
high = low; low = temp;
}
int i = 0;
double d = 0.0;
// 获得一范围为 0.0...~0.9...的随机双精度数
d = RAND.nextDouble();
// 限制范围到low~high
i = (byte)(d * (high - low + 1)+low);
return i;
}
全部回答
- 1楼网友:长青诗
- 2021-01-16 10:28
rand函数返回一个0到RAND_MAX之间的正整数。
如果要求的范围从其他数开始,可以加上这个数,
如int n = rand() + 5就是从5开始的.
如果要限制最大值最小值,就只能用取余,比如
int n = rand() % 16,返回一个0到15之间的随机数。
int n = 5 + rand() % 16, 就返回一个5到20之间的随机数
如果要求的范围从其他数开始,可以加上这个数,
如int n = rand() + 5就是从5开始的.
如果要限制最大值最小值,就只能用取余,比如
int n = rand() % 16,返回一个0到15之间的随机数。
int n = 5 + rand() % 16, 就返回一个5到20之间的随机数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息