我想在两个间隔之间得到一个随机数,1,4和8,16
要获得一个间隔之间的随机数,我必须这样做:
randNumber = random(1, 3);
如果我希望我的变量有可能成为8到16之间的数字,而不仅仅是1到4之间怎么办?
谢谢。
答案 0 :(得分:3)
这是一个简单的解决方案,有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;