中易网

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;
}
全部回答
  • 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之间的随机数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息