生成一个可以进入C#的随机数

时间:2017-03-15 08:06:08

标签: c#

现在确定标题是否描述了我真正想要的内容,但实际的例子总是更好。 我想生成一个2个整数值(100,1000)之间的随机数,但只有50步,所以接受的答案应该是100或150或450或500或750或800等。

我知道应该像这样做一个简单的随机:

Random random = new Random();
int randomNumber = random.Next(100, 1000);

1 个答案:

答案 0 :(得分:10)

int randomNumber = random.Next(2, 20) * 50;

基本上,你不能跳过范围内的数字(这会删除随机属性),所以只需生成相干的随机数并将它们映射到你想要的目标数集。

在您的情况下,由于您具有固定的步长,因此非常简单。但即使是更复杂的东西,这也适用;最糟糕的情况是,您创建一个injective function,将一个随机数映射到目标空间中的一个数字。这也允许您获得不同的分布(例如,在某些数字比其他数字更可能的情况下制作模具)。