获取两个区间之间的随机数

Get random number between two intervals

本文关键字:区间 之间 随机数 两个 获取      更新时间:2023-10-16

我想得到两个区间之间的随机数,1,4和8,16

要获得一个间隔之间的随机数,我必须这样做:

randNumber = random(1, 3);

如果我希望我的变量也有可能是8到16之间的数字,而不仅仅是1到4之间的数字呢?

谢谢。

这里有一个简单的解决方案,有50%的可能性处于任一区间:

if (rand() % 2){
    return rand() % 4 + 1;
} else {
    return rand() % 8 + 8;
}

否则,如果您希望将分布加权到区间的大小:

int num = rand() % 12 + 1;
if (num >= 4) num += 4;
return num;