我将如何制作一个随机整数,即介于 0 和 100 之间以及 12 的倍数?
int RndInt = GetRandomInt(0, 100);
生成一个介于 0 和 8 之间的随机整数并将其乘以 12。
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.
您可以使用Random类和Random.Next方法,例如;
Random r = new Random();
int i = r.Next(9) * 12;
Console.WriteLine(i);
这是一个DEMO.
作为解释,r.Next(9)返回intfrom 0to 9(包括0not 9)。
只是为了好玩:
int ret = 0;
while ( (ret=rnd.Next(0,100))%12 != 0 ) ;
return ret;