0到100之间的随机int和12的倍数

时间:2013-06-12 12:46:13

标签: c#

我如何制作一个随机int,即介于0和100之间,以及12的倍数?

int RndInt = GetRandomInt(0, 100);

4 个答案:

答案 0 :(得分:7)

生成0到8之间的随机整数,并将其乘以12。

答案 1 :(得分:6)

var rng = new Random();

int rndInt = rng.Next(0, 9) * 12;

请注意,rng.Next(min, max)使用max独占上限。

另请注意,Random()来自实时时钟的当前时间,仅在每几毫秒更新一次 - 因此您应创建一个Random对象并重新使用它;不要在紧密的循环中继续创建一个,因为它会给你错误的结果。

一般情况下,如果您希望在0N之间生成步长为S的随机数:

  1. 使用整数除法计算最大步数:M = N/S;
  2. 计算0到M之间的随机数。
  3. 将该随机数乘以步长。
  4. 在你的情况下:

    S = 12
    N = 100
    M = 100/12 = 8
    

    要生成介于0和M之间的随机数,您可以使用Random.Next(0, M+1)。请注意所需的+1,因为Random.Next()期望max的独占价值。

答案 2 :(得分:0)

您可以使用Random类和Random.Next方法;

Random r = new Random();
int i = r.Next(9) * 12;
Console.WriteLine(i);

这是DEMO

作为解释,r.Next(9)会将int0返回到9(包括0而不是9)。

答案 3 :(得分:0)

只为了好玩:

int ret = 0;
while ( (ret=rnd.Next(0,100))%12 != 0 ) ;
return ret;