我将如何制作一个随机整数,即介于 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)
返回int
from 0
to 9
(包括0
not 9
)。
只是为了好玩:
int ret = 0;
while ( (ret=rnd.Next(0,100))%12 != 0 ) ;
return ret;