我如何制作一个随机int,即介于0和100之间,以及12的倍数?
int RndInt = GetRandomInt(0, 100);
答案 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对象并重新使用它;不要在紧密的循环中继续创建一个,因为它会给你错误的结果。
一般情况下,如果您希望在0
和N
之间生成步长为S
的随机数:
M = N/S;
在你的情况下:
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)
会将int
从0
返回到9
(包括0
而不是9
)。
答案 3 :(得分:0)
只为了好玩:
int ret = 0;
while ( (ret=rnd.Next(0,100))%12 != 0 ) ;
return ret;