生成一个不能被x整除的随机数?

时间:2016-04-11 22:25:39

标签: ruby-on-rails ruby random

我正在使用rand(1..10) * 3生成一个可被3整除的随机数。

是否有一种简单的方法可以生成一个随机数, NOT 可以被三个(或任何其他数字)整除,而无需从数组中采样?

3 个答案:

答案 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;
}