我正在使用rand(1..10) * 3
生成一个可被3整除的随机数。
是否有一种简单的方法可以生成一个随机数, NOT 可以被三个(或任何其他数字)整除,而无需从数组中采样?
答案 0 :(得分:8)
k = rand(0..1000)
out = k + k/2 + 1 # The '/' here is integer division.
0 -> 1
1 -> 2
2 -> 4
3 -> 5
4 -> 7
5 -> 8
6 -> 10
...
答案 1 :(得分:1)
这样的事可能吗?
y = 3
x = nil
loop { break if (x=rand(1..10))%y !=0 }
答案 2 :(得分:1)
int getNumberNotDivisibleBy9()
{
srand(time(NULL));
int randm;
randm = rand();
while (randm % 9 == 0)
randm = rand();
return randm;
}